我正在嘗試從 2 組陣列中獲取具有共同 id 的元素,但該 id 對于每個陣列必須是唯一的,該陣列可以包含具有相同 id 的多個元素,在這種情況下,它不應該獲取該專案。僅當 id 在兩個陣列之間是通用的并且對于每個陣列都是唯一的。
var fetchElement = ArrayA.Where(x=>ArrayB.Any(y=>y.Id == x.Id)).ToArray();
上面的代碼將回傳具有公共 ID 的元素。例如:
Array 1
[
{id = 123, name ="abc"},{id=456, name="def"},{id=123, name ="ghi"}
]
Array 2
[
{id =123, name ="abc"},{id=456, name ="def"}
]
陣列 1 和陣列 2 都有 id 123 和 456,但我只想要 id 為 456 的元素,因為它對于兩個陣列都是唯一的。
uj5u.com熱心網友回復:
這是一個簡單的方法:
var Array1 = new[] { (id: 123, name: "abc"), (id: 456, name: "def"), (id: 123, name: "ghi") };
var Array2 = new[] { (id: 123, name: "abc"), (id: 456, name: "def") };
var query = from a1 in Array1.Where(x => Array1.Count(y => y.id == x.id) == 1)
join a2 in Array2.Where(x => Array2.Count(y => y.id == x.id) == 1)
on a1.id equals a2.id
select (a1, a2);
foreach (var x in query)
{
Console.WriteLine($"{x.a1} {x.a2}");
}
當然有更有效的方法,但也許對你來說就足夠了。 演示
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/428924.html
下一篇:EFLinq包含最后一個
