col1 と col2 の 2 つのコレクションがあります。col1 からレコードを選択したいのですが、col2 では一致しません。col1 には 0 から 6 まであり、col2 には 1 から 6 までの数値があります。col2 では 0 が一致しないため、0 が必要です。
両方のコレクションに同じ型がなく、両方のコレクションにフィールド ID があります。
私は c# 4.0(Linq) を使用しています。
col1 と col2 の 2 つのコレクションがあります。col1 からレコードを選択したいのですが、col2 では一致しません。col1 には 0 から 6 まであり、col2 には 1 から 6 までの数値があります。col2 では 0 が一致しないため、0 が必要です。
両方のコレクションに同じ型がなく、両方のコレクションにフィールド ID があります。
私は c# 4.0(Linq) を使用しています。
Except
メソッドが必要です:
var yourResult = col1.Except(col2);
両方のコレクションが同じタイプでない場合は、よりコストのかかるO(nm)
検索を行う必要があります。
var selectedTwo = col2.Select(x => x.ID).ToHashSet();
var yourResult = col1.Where(n => !selectedTwo.Contains(n.ID));
そして、あなたのコードのどこかで:
public static HashSet<T> ToHashSet<T>(this IEnumerable<T> source)
{
return new HashSet<T>(source);
}