linqを使用して テーブルの複数の行で列の値(ここでは2014)の1つが繰り返されるデータテーブルから特定の年(たとえば2014)のレコードをすべて選択するにはどうすればいいですか? C#の他のメソッド。重複する値を持つデータテーブルのすべてのレコードを選択する
これは、データテーブルは次のとおりです。私はDataTables
で働いてきたので、
linqを使用して テーブルの複数の行で列の値(ここでは2014)の1つが繰り返されるデータテーブルから特定の年(たとえば2014)のレコードをすべて選択するにはどうすればいいですか? C#の他のメソッド。重複する値を持つデータテーブルのすべてのレコードを選択する
これは、データテーブルは次のとおりです。私はDataTables
で働いてきたので、
あなたはすべてのレコードを取得しようとしている場合は、使用がLINQクエリ翌年2014の上にある、それはあなたのデータ列がデータを持っているかどうかチェックします、私は確信して、それは意志作品..
//selecting all the records of 2014
IEnumerable<DataRow> dtrow = default(IEnumerable<DataRow>);
dtrow = yourtable.AsEnumerable().Where(x => x.Field<Int64>("year") == Convert.ToInt64("2014"));
if (dtrow.Count() > 0)
{
dataTbl = dtrow.CopyToDataTable(); //dataTbl is the DataTable
}
それはしばらくしているが、私は、これはそれを行うべきだと思います。 dt
があなたのSystem.Data.DataTable
ある
dt.AsEnumerable().Where(x => x["Year"] == "2014");
:特定の年の行のみを選択するには
dt.AsEnumerable().GroupBy(x => x["Year"]).Where(x => x.Count() > 1);
:今年は、複数の行間で複製された行を選択する
。
これはC#より高速であるため、データベースで実行してください。 DBは索引を持つことができますが、C#には索引はありません。
select *, count(1) as totalCount
group by year
having totalCount > 1
私はすべての複製されたレコードを取得しようとしていますが、何をしていても重複を取り除き、フィルタリングされたデータを与えるでしょう...しかし、とにかく助けてください。 – Babu