嗨,我有一組物件:
MyClasss{
int Id,
int ?OtherId
}
我想做某事:
collection.Where(x.Id == y.OtherId).
如何在 linq 中執行它?
uj5u.com熱心網友回復:
我認為您正在尋找:
collection.Where(x => collection.Any(y => x.Id == y.OtherId));
請注意,這也將拉出其中 OtherId 等于同一物件上的 Id 的那些。
uj5u.com熱心網友回復:
我認為你的問題是它Id是一個整數,OtherId而是一個可以為空的整數。
您有一個 的物件序列MyClass,并且您只想保留那些“Id 等于 OtherId”的物件。或者更準確地說:
只保留那些OtherId 不為空且OtherId == Id 的物件。
最簡單的方法是:
IEnumerable<MyClass> myCollection = ...
IEnumerable<MyClass> result = myCollection
.Where(myClass => myClass.OtherId.HasValue && myClass.Value == myClass.Id);
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/392398.html
標籤:林克
下一篇:使用LINQ按孫子過濾串列
