C 對List取交集 差集以及並集

2021-08-07 14:55:46 字數 1580 閱讀 5025

list以string型別為例,實際應用中可換做其他型別:

1:取交集

// 取交集

static void intersection()

;listlist2 = new list;

listlist3 = new list();

list3 = list1.intersect(list2).tolist();

console.write(list3.count); //交集的個數,如果個數為0,說明沒有交集

console.writeline();

foreach (var s in list3) // 各個值

}

結果:

bbgg

2:取差集

// 取差集

static void exception()

;listlist2 = new list;

listlist3 = new list();

list3 = list1.except(list2).tolist();

console.write(list3.count); //差集的個數,如果個數為0,說明list1中存在的值也全都存在於list2中

console.writeline();

foreach (var s in list3) // 各個值

}

結果: aa

ccee

如果把取差集**中的

list3 = list1.except(list2).tolist();

換成 list3 = list2.except(list1).tolist();

結果如下: dd

mmlista.except(b).tolist();

注:差集表示lista中哪些值是listb中所不存在的;

3:取並集

// 取並集

static void union()

;listlist2 = new list;

listlist3 = new list();

list3 = list1.union(list2).tolist();

console.write(list3.count); //並集的個數,一般不會為0,除非list1和list2中的元素個數都為0

console.writeline();

foreach (var s in list3) // 各個值

}

結果: 7

aa bb

cc ee

gg dd

mm

如果把上面取並集**中的

list3 = list1.union(list2).tolist();

換成list3 = list1.concat(list2).tolist();

或list1.addrange(list2);

list3.addrange(list1);

則將會保留重複項

結果如下:

jdk8對list取交集 並集 差集

交集 listintersection list1.stream filter item list2.contains item collect tolist system.out.println 得到交集 intersection intersection.parallelstream forea...

List交集 並集 補集 差集

最近回看了一下list的基礎,目前網上主流得對list交並補差有兩種方式 交集交集就是兩個集合都有的部分 lista listb 那a交b結果就是 並集並集就是將兩個集合中所有的元素加在一起 lista listb 那麼a並b結果就是 差集差集就是兩集合元素相減,只保留前面集合中剩下的元素 list...

Postgresql取並集,交集,差集

關鍵字union 例子 query1 union query2 關鍵字intersect 例子 query1 intersect query2 關鍵字except 例子 query1 except query2 其中query1和query2的select子句中欄位個數必須相同,且對應的資料型別必須...