2

我有一个客户对象列表(例如:列出客户)

 public class Customer
    {
        public int ID { get; set; }
        public string City { get; set; }
        public bool DidLive { get; set; }
    }

我需要做的是将此“客户”集合转换为dictionary如下所示,

"Dictionary<int, Dictionary<string, bool>> " 其中外键是“ID”,内键是“城市”。

这可以使用"GroupBy""ToDictionary"扩展方法来完成"IEnumerable<T>"吗?

4

2 回答 2

4

我在这里假设您有多个具有相同 Id 但具有不同 Cities 的 Customer 对象(如果不是这种情况并且内部字典将始终包含一个项目,请使用@oleksii 的答案)。

var result = customers.GroupBy(c => c.Id)
                      .ToDictionary(group => group.Key,
                                    group => group.ToDictionary(c => c.City, 
                                                                c => c.DidLive));

当然,如果有多个具有相同 IdCities 的客户,这将引发异常。

于 2012-08-14T16:54:13.923 回答
1

这是一个开始的地方

var data = new List<Customer>();

data.ToDictionary(item => item.ID, 
                    item => new Dictionary<string, bool>
                    {
                        {item.City,item.DidLive}
                    });
于 2012-08-14T16:54:33.263 回答