さまざまな投稿を読んで、私が望む結果を得ることに近いと思うが、「合計」部分が間違った答えを出す。私は、私のcsvファイルには列見出しがないので、「合計」と呼ばれる方法が原因であると思われます。C#Groupby分割後の合計CSV(ヘッダーなし)
CSVファイルには、次のものが含まれています
私はしたいもの222、1
223、2
222、1
224、2
222、-1
されています。ここではグループ
による最初の列で
-
をCSVファイルを読み込み、データを分割
- グループ
- 合計2列目には、私がやっていることですこれまで:
var newquery = from line in File.ReadAllLines(path_source) //read all lines in csv file let values = line.Split(',') //split the values by separator let price_value = values[0] group line by price_value into g orderby g.Key //select g; select new { price_column = g.Key, qty_column = g.Sum(x => x[1]) }; var writesum = newquery.Select(record => record.price_column + "," + record.qty_column); File.WriteAllLines(path_target, writesum);
path_targetファイルには示しています
222、45
223、80
224、65
これは
split
、groupby
、orderby
構文が正しいですが、sum
は完全に間違っていることを私に伝えます。sum
の結果が間違っている理由の1つは、ここの構文qty_column = g.Sum(x => x[1])
に起因すると考えられます。データにヘッダーが含まれていないため、例のように
x.something
を呼び出すことができません。一方、私はこの時点で完全に間違っている可能性があります!
ご協力いただきまして誠にありがとうございます。
おかげで私の検索の多くの時間を保存した.....初心者のミス私は怖いです!今日何かを学んだ!再度、感謝します。 – Lee