我有两个清单:
var myIds = new List<int>()
{
1, 2, 3
};
var yourIds = new List<int>()
{
2, 3, 4
};
Run Code Online (Sandbox Code Playgroud)
这两个列表可以组合成一个这样的:
myIds.Union(yourIds)
.Select(x => new
{
Id = x,
Mine = myIds.Contains(x),
Yours = yourIds.Contains(x)
});
Run Code Online (Sandbox Code Playgroud)
新列表如下所示:
Id Mine Yours
---------------------
1 T F
2 T T
3 T T
4 F T
Run Code Online (Sandbox Code Playgroud)
当列表包含元素时,这很有用.但是,如果列表可能为null,该怎么办?我怎么能处理空列表?
Hab*_*bib 18
如果列表可以null,那么你必须检查null.您还可以使用null合并运算符,如果任何列表null然后返回一个空列表(在内部它也将检查null).
你可以做:
(mIds ?? Enumerable.Empty<int>()).Union(yourIds ?? Enumerable.Empty<int>())
Run Code Online (Sandbox Code Playgroud)
(感谢@phoog 评论)
但IMO,最好检查一下 null
但如果任何列表为空,那么您不必进行任何检查,也不会有异常.即使两个列表都是空的,您也会得到一个空的结果.如果任何列表是,上面的代码将返回一个空列表null.
| 归档时间: |
|
| 查看次数: |
7092 次 |
| 最近记录: |