群裡一妹子問了個問題,集合隨機選取10條,然後在剩下的資料裡面再隨機取,大致可以用下面的思路(用的linq)
int tt = ;
console.writeline ("**********==隨機取10個**********=");
//這裡直接tolist,由預編譯表示式轉物件,不然下面的except會得不到想要的差集
var q = tt.orderby (e => guid.newguid ()).take (10).tolist ();
q.foreach (x => console.writeline (x));
console.writeline ("**********==取得差集**********=");
var l = tt.except (q);
l.tolist ().foreach (x => console.writeline (x));
double numbers1 = ;
double numbers2 = ;
ienumerableonlyinfirstset = numbers1.except(numbers2);
foreach (double number in onlyinfirstset)
console.writeline(number);
如果希望比較某種自定義資料型別的物件的序列,則必須在您的類中實現
iequalitycomparer
泛型介面
public class product : iequatable
public int code
public bool equals(product other)
// if equals() returns true for a pair of objects
// then gethashcode() must return the same value for these objects.
public override int gethashcode()
}
new product ,
new product };
//get all the elements from the first array
//except for the elements from the second array.
ienumerableexcept =
fruits1.except(fruits2);
foreach (var product in except)
console.writeline(product.name + " " + product.code);
/*this code produces the following output:
orange 4
lemon 12
*/當然,except本身提供乙個過載,可以引數化比較器,參考:
new product ,
new product };
//get all the elements from the first array
//except for the elements from the second array.
ienumerableexcept =
fruits1.except(fruits2, new productcomparer());
foreach (var product in except)
console.writeline(product.name + " " + product.code);
/*this code produces the following output:
orange 4
lemon 12
*/
用Linq取兩個陣列的差集
兩個陣列,取其差集,用linq做比較方便,效率也比較高,具體如下示例 有兩個陣列list1 和list2 如下 listlist1 new list list1.add 1 list1.add 2 list1.add 3 listlist2 new list list2.add 1 list2.ad...
shell 資料的並集和差集
統計資料時經常會有這樣的要求,有檔案 和檔案 現在需要知道檔案中的資料,那些是 和 共有的,那些只出現在 檔案中 或者那些只出現在 檔案中 這樣的需求可以通過uniq命令完成。uniq d 會輸出重複行 uniq u 只顯示唯一的行 利用uniq sort 略施小計就能搞定了 例如 檔案 10010...
excel取差集 Excel 求差集和並集
1.excel求兩列差集 查詢a列中與b列不同的部分 示例 行號 a列 b列 c列結果 a b 1 1 3 1 2 2 4 2 3 3 4 4 5 5 5 方法一 在c列 結果列 第一行輸入 if countif b b,a2 0,a2,向下複製公式。滑鼠放在c1單元格右下角處,變為黑色十字 時,右...