如何解决如何抓住一个名字的所有所有者
我有一个简单的类数据,
var data = new List<PlainData>
{
new PlainData {Name = "A",Owner = "X"},new PlainData {Name = "A",Owner = "Y"},new PlainData {Name = "B",Owner = "X"}
};
在同一Name
,我拥有一个或多个所有者。
现在,我想将此数据转换为基于列表的所有者,例如下面的类,
public class ListBasedData
{
public string Name { get; set; }
public List<string> Owners { get; set; }
}
在这里我想做的是,如何抓住名称的所有所有者?
List<ListBasedData> listBasedDatas = new List<ListBasedData>();
var groups = data.GroupBy(a => a.Name);
foreach (var group in groups)
{
var a = group.Key;
var b = group.ToList();
listBasedDatas.Add(new ListBasedData{Name = group.Key,Owners = });
}
解决方法
List<ListBasedData> listBasedDatas = data
.GroupBy(a => a.Name)
.Select(grp => new ListBasedData
{
Name = grp.Key,Owners = grp.Select(x => x.Owner).ToList()
})
.ToList();
关键是使用Select
对从PlainData
到string
的每个组中的所有者进行投影。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。