。最善の方法は何ですか?
最良の方法は非常に単純です。このSQLを使用するようにSQL Readerを使用して、この
SELECT
Kid,
SUM(AMOUNT) Sum_of_amount
FROM
table
GROUP BY
Kid
のようなSQL式で使用することです。ここでは、読者の値を匿名型のリストに投影する例を示します。私にそれを匿名にしたくないのであれば、自分のタイプを定義して代わりに使うことができます。また、linq式の代わりにfor
ループを使用することもできます。
using (SqlConnection cn = new SqlConnection ("ConnectionString"))
using (SqlCommand cmd = new SqlCommand (@"
SELECT
Kid,
SUM(AMOUNT) Sum_of_amount
FROM
table
GROUP BY
Kid", cn))
{
cn.Open();
using (SqlDataReader dr = cmd.ExecuteReader())
{
var list = (from r in dr.Cast<DbDataRecord>()
select new {Id= r.GetInt32(0), SumOfAmount = r.GetInt32(1) }).ToList();
}
}
あなたはこの
Table<Kids> kids = db.GetKids();
var kidsSum =
(from k in kids
group p by p.Id into g
select new {ID = g.Key, SumOfAmount = g.Sum(p => p.Amount) }).ToList();
そして、何で保存最良の方法はあるようにそれを行うために、そのかなりまっすぐ進むのLINQ to SQLのようなものを使用している場合は?配列リスト?
「最良の」方法はありませんが、直接操作された配列には問題があります。あなたはあなたが選んだジェネリックコレクションで一層楽です。
多くの人が好きではないが、型指定されたデータセットも有効な選択肢です。
SQLでこれを実行していたのなら、それはおそらく非常に簡単ですが、C#の回答が必要な場合にどのように手伝っていいのか分かりません。ソリューションはおそらくLINQで簡単に行うことができますが、ソリューションを投稿するのに十分なLINQについてはわかりません。 – FrustratedWithFormsDesigner
C#でどのデータベース抽象化を使用していますか? LINQを使用できますか? – Kekoa