5

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この数値を合計するためにループを使用したくありません。

4

3 に答える 3

21

あなたは間違って電話していSum()ます。

Sum()単一の要素を数値に変換するラムダを取ります:

.Sum(x => int.Parse(x))

または、より単純に、

.Sum(int.Parse)

これは、C# コンパイラのバージョン 4 以降でのみ機能します (プラットフォームのバージョンに関係なく)。

于 2013-01-10T17:33:58.020 に答える
4

それ以外の

int number = myString.Split(',').Sum((x,y)=> y += int.Parse(x));

使用する

int number = myString.Split(',').Sum(x => int.Parse(x));

の各要素myString.Split(',')を int に解析して追加します。

于 2013-01-10T17:34:19.223 に答える
0
var value = "1,2,4,8,16".Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
                        .Select (str => int.Parse(str))
                        .Sum ( ) ;

Console.WriteLine( value ); // 31
于 2013-01-10T17:38:30.943 に答える