C# 中一个键值字典的多个值
本文关键字:字典 键值 一个 | 更新日期: 2023-09-27 18:35:07
我有一个地址对象 在这个对象中,我有地址行。我的问题是我想为相同的键添加不同的值。这个对象可以有多个地址,所以我需要在字典中添加地址属性作为键,将值添加为值。
假设地址一的对象有...
City : Kanpur
State:UP
并在地址的第二个对象中有
City : Rajsthan
State:MP
现在我如何将其添加到通用集合中。
我已经尝试了下面的代码。但没有得到正确的方法。
foreach (var objAddress in entity.Addresses)
{
ds = new Dictionary<string, string>();
ds.Add("City", (objAddress.City == null) ? "" : objAddress.City);
ds.Add("State", (objAddress.State == null) ? "" : objAddress.State.ToString());
lsb.Add(ds.ToString());
}
只需使用Dictionary<string, List<Address>>
.
添加到该字典时,如果给定键尚未包含值,请添加包含该地址的新List<Address>
。
如果给定的键确实包含值,只需将新Address
Add
到该List
即可。
使用 Lookup 类。做:
var cityLookup = entity.Addresses.ToLookup(i => i.City);
然后,您可以返回按城市分组的数据。
您可以为感兴趣的其他属性创建类似的查找。
使用查找时,它会返回所有匹配地址的集合。
要查找和使用城市"坎普尔"中的所有地址,您可以执行以下操作:
foreach (var address in cityLookup["Kanpur"])
{
// your code here
}
你可以创建一个保存完整地址的类,字典的值可以是一个集合。
Class Address
{
public string City { get;set; }
public string State{ get;set; }
public string Country{ get;set; }
}
var ds = new Dictionary<string,List<Address>>();
Got the answer....
I am just creating a list of dictionary type and adding multiple values in it.
Dictionary<string, string> ds = null;
List<Dictionary<string, string>> lsb = new List<Dictionary<string, string>>();
foreach (var entity in abc.Object)
{
foreach (var objAddress in entity.Addresses)
{
ds.Add("City", (objAddress.City == null) ? "" : objAddress.City);
ds.Add("State", (objAddress.State == null) ? "" : objAddress.State.ToString());
lsb.Add(ds);
}