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());
}

C# 中一个键值字典的多个值

只需使用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);
                                }