linq を使用する場合は、次を使用できます。
var source = _dt.Distinct();
ListBox1.DataSource = source;
ListBox1.DataValueField = "userId";
ListBox1.DataBind();
編集:
わかりました、もう少し詳しく調査したところ、System.Data.DataRowCollection
は などの典型的な IEnumerable と同じ方法で IEnumerable 拡張メソッドを実装していないことがわかりましたList
。拡張メソッドを使用するには、Distinct()
最初に行セットをより基本的な IEnumerable に取得する必要があります。
IEnumerable<System.Data.DataRow> rows = (IEnumerable<System.Data.DataRow>)_dt.Rows;
ListBox1.DataSource = rows.Distinct();
ListBox1.DataValueField = "userId";
ListBox1.DataBind();
機能しますが、@ Massimiliano が提供する回答ほど単純でも効率的でもない可能性があります。