大家下午好
问题有点简单,但整个下午我都遇到了问题
我有2个列表:
我想比较它们,但我想获得没有一对的id(如果它存在)
我想知道是否有ac#或linq方法来识别两个数组中不同的值
例
如果我有
List<int> ids = {1,2,3,4,5}
Run Code Online (Sandbox Code Playgroud)
和
List<objectX> x = (contains id,code, and description)
Run Code Online (Sandbox Code Playgroud)
而我正在尝试类似的东西
foreach (int id in ids)
{
foreach (objectX item in x)
{
if (item.id == id)
{
break;
}
else
idDiferentes.Add(id);
}
}
Run Code Online (Sandbox Code Playgroud)
但是你可以想象它不起作用
例如
ids= {1,2,3,4}
objectx[id] ={1,3,2}
Run Code Online (Sandbox Code Playgroud)
当我比较它们时,它们是不同的,所以我得到一个更大的列表,我需要的那个
我也尝试过linq外连接,但我不明白它是如何工作的
Ant*_*ram 10
var idsWithoutObjects = ids.Except(x.Select(item => item.id));
Run Code Online (Sandbox Code Playgroud)
你所追求的是Except扩展方法.它为您提供了两个序列之间的集合差异.
所以你可以做这样的事情(伪c#-code):
var idDifferences = x.Select(item => item.id).Except(ids);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1579 次 |
| 最近记录: |