dictionary怎样通过key得到value
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dictionary怎样通过key得到value相关的知识,希望对你有一定的参考价值。
参考技术A 直接增加就行了 相同的KEY 后面的会覆盖前面的key值有唯一性,value没有。
Dictionary是抽象类.
Dictionary ht =new Hashtable();
ht.get("");
//过时的类,现在用HashMap了.
望采纳,谢谢!!!本回答被提问者和网友采纳 参考技术B Dictionary类,是一个abstract抽象类,定义得到value的方法为:V get(Object key)。
一般利用子类类Map的实现类HashMap等,调用get(key)方法得到value。
如下为一个十分简单的代码示例:
private void GetDicKeyByValue()
Dictionary<string, string> dic = new Dictionary<string, string>();
dic.Add("1", "1");
dic.Add("2", "2");
dic.Add("3", "2");
//foreach KeyValuePair traversing
foreach (KeyValuePair<string, string> kvp in dic)
if (kvp.Value.Equals("2"))
//...... kvp.Key;
//foreach dic.Keys
foreach (string key in dic.Keys)
if (dic[key].Equals("2"))
//...... key
//Linq
var keys = dic.Where(q => q.Value == "2").Select(q => q.Key); //get all keys
List<string> keyList = (from q in dic
where q.Value == "2"
select q.Key).ToList<string>(); //get all keys
var firstKey = dic.FirstOrDefault(q => q.Value == "2").Key; //get first key
Swift Dictionary UIPickerView (key) 和 (value) Swift
【中文标题】Swift Dictionary UIPickerView (key) 和 (value) Swift【英文标题】:Swift Dictionary UIPickerView (key) and (value) Swift 【发布时间】:2020-05-05 07:33:36 【问题描述】:我目前正在使用 Swift 开发一个应用程序,我使用 UIPickerView。我想在pickerView(myPickerView)中设置值
let PickerData =
"listOfGrouoc":
"1": "DDDDD",
"2": "SDDDDD",
"3": "TTTT"
,
"TypeOfGrpos": [
"STTTTT",
"TTTTT"
],
"SubTypp":
"3": "Shh",
"6": "SSS",
"9": " dfdf"
"14": "Shh",
"21": "SSS",
"60": " dfdf"
,
"GropName":
"1": "test",
"2": "test"
这是来自服务器的响应,我想在 pickerView 中显示组 listOfGrouoc
代码如下:-
在viewDidLoad
我有:
Picker.delegate = self
Picker.dataSource = self
那么我有需要的方法:
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int
return 1
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int
return PickerData.count
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String?
return PickerData[row] trying to show SSSSS,DDDDD,GGGGG
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)
print(PickerData[row]) expecting only id Int Value
问题:- 有人可以向我解释如何在选择器视图标题中设置 dict 值以及单击 didSelectRow 时获取 dict key 。任何帮助将不胜感激。
提前致谢。
【问题讨论】:
您能否举例说明您尝试在选择器中显示的数据的哪一部分以及您希望能够在 didSelectRow 上获得什么值? @elliott-io 请检查我是否尝试仅显示名称以及选择名称时获取 Int 值。 酷。我发布了一个有效的答案。 @elliott-io 好的,我会检查并更新您。感谢您的回复 【参考方案1】:根据您的数据,我创建新的对象名称 CustomObject 并解析将在选取器中显示的数据。
这是我的代码:
struct CustomObject
let id: String
let name: String
init(id: String, name: String)
self.id = id
self.name = name
class FirstViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource
let PickerData: [String : Any] = ["listOfGrouoc": ["1": "DDDDD","2": "SDDDDD","3": "TTTT"],"TypeOfGrpos": ["STTTTT","TTTTT"],"SubTypp": ["333": "Shh","334": "SSS","543": " dfdf"],"GropName": ["1": "test","2": "test"]]
var listOfGrouoc: [CustomObject] = []
override func viewDidLoad()
super.viewDidLoad()
let picker = UIPickerView(frame: CGRect(x: 0, y: 50, width: 300, height: 200))
picker.dataSource = self
picker.delegate = self
self.view.addSubview(picker)
if let list = PickerData["listOfGrouoc"] as? [String: String]
for objectID in list.keys
if let name = list[objectID]
self.listOfGrouoc.append(CustomObject(id: objectID, name: name))
//Sort here
self.listOfGrouoc.sort(by: $0.id < $1.id)
func numberOfComponents(in pickerView: UIPickerView) -> Int
1
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int
return listOfGrouoc.count
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String?
return listOfGrouoc[row].name
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)
print(listOfGrouoc[row].id)
【讨论】:
您好 Traj,是否有任何选项可以根据键值对该数组进行排序。因为我得到了随机数组,但我想从低到高排序 @ShamDhiman 请检查我在 viewDidLoad 中的更新。 Bcz 它是 Dictionary 的特性,所以在生成数组后,我们需要按照您的预期再次对其进行排序。 @traj 谢谢你的回复,我已经尝试过了,但它不适合我 @traj 我只想排序子类型参数,如 3,6,9 当我排序时他们返回我 14,9,3,6 我不知道为什么,它对我不起作用解决方案? @ShamDhiman 与listOfGrouoc
一样,创建另一个对象并解析它,然后再次排序。告诉我你尝试对 SubTypp 进行什么排序以上是关于dictionary怎样通过key得到value的主要内容,如果未能解决你的问题,请参考以下文章