立訊精密生產:iFory 65W 充電頭 39 元清倉(日常 109 元)
C# Linq 交集、並集、差集、去重
今晚打老虎:如果你刻意練習某件事情請超過10000小時,那麼你就會達到世界級別
其實只要明白 LINQ查詢操作符的Distinct、Union、Concat、Intersect、Except、Skip、Take、SkipWhile、TakeWhile、Single、SingleOrDefault、Reverse、SelectMany,Aggregate()的使用,一些簡單的操作就可以了。
合併兩個陣列,並去掉重複元素,然後排序(C#)
List<int> numbers1 = new List<int>() { 5, 4, 1, 3, 9, 8, 6, 7, 12, 10 }; List<int> numbers2 = new List<int>() { 15, 14, 11, 13, 19, 18, 16, 17, 12, 10 }; var newQuerty = numbers1.Concat( from n in numbers2 where !numbers1.Contains(n) select n ).OrderBy(n => n); string count = ""; foreach (int i in newQuerty) { count += i + ","; } MessageBox.Show(count);
在這簡單的介紹幾個關鍵字,Distinct、Union、Concat、Intersect、Except、Skip、Take
Distinct
- 過濾集合中的相同項;
List<int> list= new List<int>() {1,2,3,4,4,5,6,6 };
var newlist=list.Distinct();
得到的結果就是;1,2,3,4,5,6
Union
- 連線不同集合,自動過濾相同項
List<int> list= new List<int>() {1,2,3,4,4,5,6,6 }; List<int> list1= new List<int>() {5,6,6,7,8,9}; var newlist=list.Union (list1);
得到的結果就是;1,2,3,4,5,6,7,8,9
Concat
- 連線不同集合,不會自動過濾相同項
List<int> list= new List<int>() {1,2,3,4,4,5,6,6 };
List<int> list1= new List<int>() {5,6,6,7,8,9};
var newlist=list.Union (list1);
得到的結果就是;1,2,3,4,4,5,6,6,5,6,6,7,8,9
Intersect
- 獲取不同集合的相同項(交集)
List<int> list= new List<int>() {1,2,3,4,4,5,6,6 }; List<int> list1= new List<int>() {5,6,6,7,8,9}; var newlist=list.Intersect (list1);
得到的結果就是;5,6
Except
- 從某集合中刪除其與另一個集合中相同的項;其實這個說簡單點就是某集合中獨有的元素
List<int> list= new List<int>() {1,2,3,4,4,5,6,6 };
List<int> list1= new List<int>() {5,6,6,7,8,9};
var newlist=list.Except (list1);
得到的結果就是;1,2,3,4
Skip
- 跳過集合的前n個元素
List<int> list= new List<int>() {1,2,3,4,4,5,6,6 };
var newlist=list.Skip (3);
得到的結果就是;4,4,5,6,6
Take
- 獲取集合的前n個元素
List<int> list= new List<int>() {1,2,2,3,4,4,5,6,6 };
var newlist=list.Take (3);
分頁
Skip()和Take()方法都是IEnumerable 介面的擴充套件方法,包括C#中的所有Collections類,如ArrayList,Queue,Stack等等,還有陣列和字串都可以呼叫這兩個方法。
var testList = new List();
//比如 testList裡面是 1,2,3,4,5,6,7,8,9,10
var result = testList.Skip(5); //返回值就是 6,7,8,9,10;
var result = testList.Take(5); //返回值就是 1,2,3,4,5
//搭配使用,一般用來分頁
var result = list.Skip(2).Take(2); //返回值 3,4
更多
https://blog.csdn.net/qq_40732336/article/details/111684724
官網:https://docs.microsoft.com/zh-cn/dotnet/api/system.linq.queryable.union?view=net-6.0
參考:https://www.cnblogs.com/lgx5/p/10614033.html