1. ホーム
  2. c#

List<int>のintの和の範囲

2023-09-10 06:14:29

質問

これはとても簡単なことだと思うのですが、どうすればいいのかわかりません。私は List<int> があり、私は数値の範囲を合計したいのです。

私のリストがそうだとします。

var list = new List<int>()
{
    1, 2, 3, 4
};

最初の3つのオブジェクトの合計を得るにはどうしたらよいでしょうか。結果は6です。私は使用してみました Enumerable.Range を使ってみましたが、うまくいきませんでした。それが最善の方法かどうかはわかりません。

することなく。

int sum = list[0] + list[1] + list[2];

どのように解決するのですか?

これを実現するには Take &を使用します。 Sum :

var list = new List<int>()
{
    1, 2, 3, 4
};

// 1 + 2 + 3
int sum = list.Take(3).Sum(); // Result: 6

他の場所から始まる範囲を合計したい場合は Skip :

var list = new List<int>()
{
    1, 2, 3, 4
};

// 3 + 4
int sum = list.Skip(2).Take(2).Sum(); // Result: 7

また、リストを並べ替えるには OrderBy または OrderByDescending と入力し、和をとる。

var list = new List<int>()
{
    1, 2, 3, 4
};

// 3 + 4
int sum = list.OrderByDescending(x => x).Take(2).Sum(); // Result: 7

ご覧のように、このタスク(または関連するタスク)を達成する方法はいくつもあります。ご覧ください。 Take , Sum , Skip , OrderBy & OrderByDescending のドキュメントを参照してください。