3 回答

TA貢獻1942條經驗 獲得超3個贊
您可以嘗試以下方法:
if(!listOfObject2.Any(x => x.Value1 == object1.Value1
&& x.Value2 == object1.Value2)
)
{
object1.Exclude = true;
}
在上面的代碼片段中,listOfObject2是 typeList<Object2>和object1type Object1。

TA貢獻1911條經驗 獲得超7個贊
Object1另一種方法是在類上實現一個比較方法,如果屬性匹配則接收Object2并返回:true
public class Object1
{
public string Value1 { get; set; }
public string Value2 { get; set; }
public bool Exclude { get; set; }
public bool ValuesMatch(Object2 other)
{
return (other != null) &&
Value1 == other.Value1 &&
Value2 == other.Value2;
}
}
然后你可以在你的 Linq 語句中使用這個方法:
object1.ForEach(o1 => o1.Exclude = object2.Any(o1.ValuesMatch));

TA貢獻1826條經驗 獲得超6個贊
如果您有兩個列表,則應該可以:
foreach (var obj1 in object1)
{
obj1.Exclude = true;
foreach (var obj2 in object2)
{
if (obj1.Value1.Equals(obj2.Value1)
|| obj1.Value1.Equals(obj2.Value2)
|| obj1.Value2.Equals(obj2.Value1)
|| obj1.Value2.Equals(obj2.Value2))
{
obj1.Exclude = false;
break;
}
}
}
這將初始化Exclude為 true,然后循環遍歷Object1列表并將其兩個值Object2與 object2 列表中的每個值進行比較。如果找到匹配項,則將 exclude 設置為 false 并中斷內部循環,因為它不再需要查看。如果它一直通過,Exclude保持真實。
- 3 回答
- 0 關注
- 167 瀏覽
添加回答
舉報