STUDENT というテーブルにクエリを実行しています。STUDENT_ID と TIME (両方とも文字列) の 2 つの値を取得したいと考えています。ただし、STUDENT_ID の個別の値のみが必要です。STUDENT_ID のみで Distinct() を使用すると、一意の値が得られます。しかし、TIME を含めた瞬間にすべての値が表示されます。これは、テーブル内の時間がすべて異なるためです。また、独自の Comparer クラスを作成し、インスタンスを Distinct() に渡そうとしました。
public class MyCompare : IEqualityComparer<IQueryable>
{
public bool Equals(DataRow x, DataRow y)
{
return (x.Field<string>("STUDENT_ID") == y.Field<string>("STUDENT_ID"));
}
public int GetHashCode(DataRow obj)
{
return obj.ToString().GetHashCode();
}
}
ただし、4つのエラーが発生します。
1)。2つの値でdistinctを使用する方法はありますか? (STUDENT_IDだけだとソートされるので)STUDENT_IDの一意の値を表示し、対応するTIMESを表示したい。
または.. 2. 動作するコンペアラーを作成するにはどうすればよいですか? 次のエラーが表示されます。
a. エラー 1 'System.Linq.IQueryable' には 'Distinct' の定義が含まれておらず、最適な拡張メソッド オーバーロード 'System.Linq.ParallelEnumerable.Distinct(System.Linq.ParallelQuery, System.Collections.Generic.IEqualityComparer)' にはいくつかの定義があります無効な引数 C:\Users\KC\Desktop\SoulScanner\SoulScanner\SearchByTime.xaml.cs 360 23 SoulScanner
b. エラー 4 引数 1: 'System.Collections.Generic.IEnumerable' から 'System.Linq.IQueryable' に変換できません C:\Users\KC\Desktop\SoulScanner\SoulScanner\SearchByTime.xaml.cs 363 43 SoulScanner
c. エラー 2 インスタンス引数: 'System.Linq.IQueryable' から 'System.Linq.ParallelQuery' に変換できません C:\Users\KC\Desktop\SoulScanner\SoulScanner\SearchByTime.xaml.cs 360 23 SoulScanner
d. エラー 3 'SoulScanner.dgvRecords.dgvRecords(System.Linq.IQueryable)' に一致する最適なオーバーロードされたメソッドには、いくつかの無効な引数があります C:\Users\KC\Desktop\SoulScanner\SoulScanner\SearchByTime.xaml.cs 363 28 SoulScanner