C# Dictionary 的遍历方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# Dictionary 的遍历方法相关的知识,希望对你有一定的参考价值。
首先创建了一个类 class Class1
class Class1
private string name;
public string Name
get return name;
set name = value;
private int age;
public int Age
get return age;
set age = value;
public Class1(string name,int age)
this.Name = name;
this.Age = age;
////////////////////////////////// Form窗体 /////////////////////////////////
private void button1_Click(object sender, EventArgs e)
Dictionary<string, Class1> cl = new Dictionary<string, Class1>();
Class1 s1 = new Class1("张三",25);
Class1 s2 = new Class1("李四",26);
Class1 s3 = new Class1("家六",27);
cl.Add(s1.Name, s1);
cl.Add(s2.Name, s2);
cl.Add(s3.Name, s3);
foreach (KeyValuePair<string, Class1> a in ???????)
MessageBox.Show(a.Value.ToString());
想遍历Value的值
foreach (KeyValuePair<string, Class1> a in ???????)
这里该怎么写?
还有就是 我想通过key来查询出单个的key所对应的Value该怎么写???
Dictionary<string, Class1> cl = new Dictionary<string, Class1>();
Class1 s1 = new Class1("张三", 25);
Class1 s2 = new Class1("李四", 26);
Class1 s3 = new Class1("家六", 27);
cl.Add(s1.Name, s1);
cl.Add(s2.Name, s2);
cl.Add(s3.Name, s3);
foreach (KeyValuePair<string, Class1> a in cl)
MessageBox.Show(a.Value.Age.ToString() + " " + a.Value.Name.ToString());
foreach (KeyValuePair<string, Class1> a in cl)
if (a.Key == s1.Name)
MessageBox.Show(a.Value.Age.ToString() + " " + a.Value.Name.ToString());
参考技术A 那你用for循环也可以啊
foreach (类型 实体 in 对象) 参考技术B Dictionary
这个是实体类,也就是说在这个类当中所有人方法和属性都是已经实现了的。
class
Test
public
string
GetTest()
return
"aaa";
参考技术C dictionary<int
,string
>
furits=new
dictionary<int
,string
>();furits.add(1,"apple");furits.add(2,"banana");foreach(int
i
in
furits.keys)
console.WirtleLine("keys:0,values:1",i,furits[i]); ------------------------------第二种foreach(string
i
in
furits.values)
console.WirtleLine("values:0",i); 参考技术D 取keys值:furits.keys[i];
取values值:furits[furits.keys[i]]
C# Dictionary 函数解析及使用方法
-
要使用Dictionary集合,需要导入C#泛型命名空间
System.Collections.Generic(程序集:mscorlib)
-
1、从一组键(Key)到一组值(Value)的映射,每一个添加项都是由一个值及其相关连的键组成
2、任何键都必须是唯一的
3、键不能为空引用null(VB中的Nothing),若值为引用类型,则可以为空值
4、Key和Value可以是任何类型(string,int,custom class 等)
-
1、创建及初始化
Dictionary<int,string>myDictionary=newDictionary<int,string>();
2、添加元素
myDictionary.Add(1,"C#");
myDictionary.Add(2,"C++");
myDictionary.Add(3,"ASP.NET");
myDictionary.Add(4,"MVC");
3、通过Key查找元素
if(myDictionary.ContainsKey(1))
{
Console.WriteLine("Key:{0},Value:{1}","1", myDictionary[1]);
}
4、通过KeyValuePair遍历元素
foreach(KeyValuePair<int,string>kvp in myDictionary)
{
Console.WriteLine("Key = {0}, Value = {1}",kvp.Key, kvp.Value);
}
5、仅遍历键 Keys 属性
Dictionary<int,string>.KeyCollection keyCol=myDictionary.Keys;
foreach(intkeyinkeyCol)
{
Console.WriteLine("Key = {0}", key);
}
6、仅遍历值 Valus属性
Dictionary<int,string>.ValueCollection valueCol=myDictionary.Values;
foreach(stringvalueinvalueCol)
{
Console.WriteLine("Value = {0}", value);
}
7、通过Remove方法移除指定的键值
myDictionary.Remove(1);
if(myDictionary.ContainsKey(1))
{
Console.WriteLine("Key:{0},Value:{1}","1", myDictionary[1]);
}
else
{
Console.WriteLine("不存在 Key : 1");
}
-
Comparer: 获取用于确定字典中的键是否相等的 IEqualityComparer。
Count: 获取包含在 Dictionary中的键/值对的数目。
Item: 获取或设置与指定的键相关联的值。
Keys: 获取包含 Dictionary中的键的集合。
Values: 获取包含 Dictionary中的值的集合。
Add: 将指定的键和值添加到字典中。
Clear: 从 Dictionary中移除所有的键和值。
ContainsKey: 确定 Dictionary是否包含指定的键。
ContainsValue: 确定 Dictionary是否包含特定值。
GetEnumerator: 返回循环访问 Dictionary的枚举数。
GetType: 获取当前实例的 Type。 (从 Object 继承。)
Remove: 从 Dictionary中移除所指定的键的值。
ToString: 返回表示当前 Object的 String。 (从 Object 继承。)
TryGetValue: 获取与指定的键相关联的值。
以上是关于C# Dictionary 的遍历方法的主要内容,如果未能解决你的问题,请参考以下文章