c# - 如何抓住一个名字的所有所有者
问题描述
我有一个简单的类数据,例如,
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
。
推荐阅读
- uwp-xaml - NavigationViewItem 问题的内容属性
- c# - 通过 JSON.NET 反序列化 Elasticsearch 结果
- java - 我在状态栏下没有点击
- java - 将带有字母数字和特殊字符的字符串压缩(加密)为字母数字并将压缩的字母数字转换回原始字符串
- java - 如何使用嵌套循环创建半菱形?
- ansible - 从 API 响应中提取数据
- reactjs - 使用redux(mobx)注入的打字稿类型检查反应组件的问题
- reactjs - 用于反应应用程序的条形码扫描仪
- android - Android java.lang.IllegalArgumentException: Unknown URI: content://downloads/public_downloads 错误
- python - 如何在“(”和下一个空格之间的语句中获取特定单词