0

linq.Below にアイテムの arraylist を追加する必要があります。サンプル コードは次のとおりです。

string[] _str = ("1.21,2.02,3.14,4.951,5.156").ToString().Split(',');
double Sum = 0.0;
for (int i = 0; i < _str.Length; i++)
{
  if (_str[i].ToString() != ",")
     Sum = Sum + Convert.ToDouble(_str[i]);
}

上記のコードは、配列リスト内のすべての項目の合計を取得するために for ループで実行しました。私はlinqで同じ操作を変換する必要があります。私はlinqが初めてなので、誰かがこれを解決するのを手伝ってください。

前もって感謝します。

4

4 に答える 4

3

Sum次の方法を使用します。

string[] _str = "1.21,2.02,3.14,4.951,5.156".Split(',');
var result = _str.Sum(e => Double.Parse(e));
于 2012-09-11T10:45:48.803 に答える
1
string[] _str =  {"1.21","2.02","3.14","4.951","5.156"};
double Sum = 0.0;
for (int i = 0; i < _str.Length; i++)
{
    double.TryParse(_str[i],out val)
}

しかし、あなたがlinqを学ぶためにこれをしているなら

string[] _str = {"1.21","2.02","3.14","4.951","5.156"};
_str.Sum(x => 
    {  
       double val ; 
       if(double.TryParse(x, out val)){
         return val;
       }
       return 0.0;
    });

文字列に常に有効な数値文字列が含まれていることが確実な場合。次に、 double.Parse(x) を使用できます。

于 2012-09-11T10:55:52.787 に答える
0

試す...

var _str = _str = ("1.21,2.02,3.14,4.951,5.156").ToString().Split(',');
var _sum = Array.ConvertAll<String, Double>(_str, Double.Parse).Sum();

メソッドチェーンの例を含む別のワンライナー...

var _sum = "1.21,2.02,3.14,4.951,5.156".Split(',').Sum(x => Double.Parse(x));
于 2012-09-11T10:51:16.857 に答える
0

あなたが試すことができます

string[] _str = "1.21,2.02,3.14,4.951,5.156".Split(',');
double Sum = _str.Sum(x=>Convert.ToDouble(x));
于 2012-09-11T10:46:27.990 に答える