LINQ Sumメソッドで文字列の配列を合計するには?
次のような文字列があります。"1,2,4,8,16"
私が試してみました:
string myString = "1,2,4,8,16";
int number = myString.Split(',').Sum((x,y)=> y += int.Parse(x));
Parseしかし、それはタイプをタイプすることはできないと言っていintますか?
foreachこの数値を合計するためにループを使用したくありません。
あなたは間違って電話していSum()ます。
Sum()単一の要素を数値に変換するラムダを取ります:
.Sum(x => int.Parse(x))
または、より単純に、
.Sum(int.Parse)
これは、C# コンパイラのバージョン 4 以降でのみ機能します (プラットフォームのバージョンに関係なく)。
それ以外の
int number = myString.Split(',').Sum((x,y)=> y += int.Parse(x));
使用する
int number = myString.Split(',').Sum(x => int.Parse(x));
の各要素myString.Split(',')を int に解析して追加します。
var value = "1,2,4,8,16".Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
.Select (str => int.Parse(str))
.Sum ( ) ;
Console.WriteLine( value ); // 31