假设我有以下数据,
data: {
variations: [{
steps: [
{ Name: "Crawl", Status: "Complete" },
{ Name: "Walk", Status: "InProgress" }
]
},{
steps: [
{ Name: "Crawl", Status: "Complete" },
{ Name: "Walk", Status: "Complete" },
{ Name: "Run", Status: "NotStarted" }
]
}]
}
如何使用LINQ获取这组数据?生成的数据集是所有变体的独特步骤。
[
{ Name: "Crawl", Status: "Complete" },
{ Name: "Walk", Status: "InProgress" },
{ Name: "Walk", Status: "Complete" },
{ Name: "Run", Status: "NotStarted" }
]
我尝试了很多Select的组合,但我没有运气。
答案 0 :(得分:3)
使用.SelectMany(..)
,然后执行.Distinct(...)
以消除第二个抓取对象。
var result = data
.SelectMany(x => x.Steps)
.Distinct()
.ToArray();
这确实需要您实施IEquatable<T>
并覆盖.GetHashCode()
和.Equals()
。
答案 1 :(得分:0)
对于不想实现平等的人们:
arr.map((el,index) => {
return <Item
id={index}
key={el}
itemId={itemId}
item={el}
handleItemClick={handleItemClick}
/>;
});