字典.C#中的项
本文关键字:字典 | 更新日期: 2023-09-27 18:25:58
我从一年前开始使用VB.NET,现在我不得不在另一个使用C#的项目中工作,但我找不到这种等价物。。
在VB.NET 中
Dim dictionary As Dictionary(Of String, Decimal)
Dim oPerson As Person = Nothing
Dim key as string = "SomeValue"
If dictionary.ContainsKey(key) Then
oPerson = dictionary.Item(key)
End If
在C#中,最好的方法是什么??
我发现了这样的东西,但我不知道这是否是最好的方法
Person oPerson = dictionary.Where(z => z.Key == key).FirstOrDefault().Val
可能是这样的:
Dictionary<String, Person> dictionary = new Dictionary<String, Person>();
...
Person oPerson = null;
String key = "SomeValue";
if (dictionary.TryGetValue(key, out oPerson)) {
// Person instance is found, do something with it
}
Dictionary<string, decimal> dictionary = null;
Person oPerson = null;
string key = "SomeValue";
if (dictionary.ContainsKey(key)) {
oPerson = dictionary[key];
}
Dictionary<string, decimal> dictionary = null;
Person oPerson = null;
string key = "SomeValue";
if (dictionary.ContainsKey(key)) {
oPerson = dictionary[key];
}
Dictionary dictobj=新词典();dictobj。添加(1123);dictobj。添加(2345);
var a = dictobj.Where(x => x.Key == 1).First().Value;
OP答案几乎已经存在,如果他可以使用Linq来获取数据的话。因为条件只有一个键,所以Where条件就足够了,否则您可以使用。Contains用于多个条件。
Person oPerson =new Person();
var a= dictionary.Where(z => z.Key == key).FirstOrDefault();
if (a.Count() > 0)
{
oPerson.ABC = a.FirstOrDefault().Value;
}
有两种方法可以解决这个问题:
如果字典中不存在密钥,这将引发异常(异常不是坏事!)
var value = dictionary["key"] as Person;
如果您想先检查密钥是否存在:
Person person = null;
if(!dictionary.TryGetValue("key", out person))
{
//Dictionary did not contain value, act accordingly ...
// ...
}
我想强调的是,异常并不是一件坏事,如果你的应用程序稍后会失败,如果字典中不包含Person,那么一定要抛出异常!