gul*_*aek 28 .net c# linq list
我有两个列表,我需要比较它们,只返回不同时列出的项目列表.
var listOfIds = new List<int> {1,2,4};
var persons = new ObservableCollection<Person>
{
new Person {Id = 1, Name = "Person 1"},
new Person {Id = 2, Name = "Person 2"},
new Person {Id = 3, Name = "Person 3"},
new Person {Id = 4, Name = "Person 4"}
};
Run Code Online (Sandbox Code Playgroud)
在这个例子new Person {Id = 3, Name = "Person 3"}中将是结果.Linq解决方案将是首选.
Pra*_*ana 39
不会为你工作
var listOfIds = new List<int> {1,2,4};
var query = from item in persons
where !listOfIds .Contains( item.id )
select item;
Run Code Online (Sandbox Code Playgroud)
您可以查看更多详细信息:SQL到LINQ(案例7 - 使用IN和NOT IN子句过滤数据)
Moh*_*bed 34
你也可以使用lambda:
var query = persons.Where(item => !listOfIds.Contains(item.Id));
Run Code Online (Sandbox Code Playgroud)
var list1 = new List<int> {1,2,3,4,5};
var list2 = new List<int> {2,3,4,5,6};
list1.Except(list2); //1 - items removed
list2.Except(list1); //6 - items added
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
42891 次 |
| 最近记录: |