我有一个数据列表(Element),它包含另一个列表(SourceElement)。我想获得所有的linkid属性而不重复它们。我怎么能这样做?
public class Element
{
public int ElementId { get; set; }
public List<SourceElement> Source { get; set; }
}
public class SourceElement
{
public int SourceElementId { get; set; }
public int LinkId { get; set; }
}
现在就是这样
示例(元素):
ElementId = 1来源= {1,2},{1,3},{1,4},{1,7}
ElementId = 2来源= {2,2},{2,3},{2,4},{2,8}
最终输出必须是这样的。
LinkIds = {2,3,4,7,8}
任何帮助将不胜感激。
答案 0 :(得分:1)
假设您有elements
的列表:
var linkIds = elements.SelectMany(e => e.Source)
.Select(s => s.LinkId)
.Distinct();
答案 1 :(得分:0)
使用SelectMany
并获取所有SourceElement
个集合,一旦在LinkId上获得扁平数组Distinct
var output = string.Join(",", elements.SelectMany(s=>s.Source)
.Select(l=>l.LinkId)
.Distinct()
);
var formattedoutput = String.Format("LinkIds = {{0}}", output);
<强>输出强>
LinkIds = {2,3,4,7,8}