先頭から取得する。途中から取得する。

文字列から一部を抜き取りメソッドのように、LINQにもそんな感じのメソッドがある。
using System;
using System.Collections.Generic;
using System.Linq;

namespace TawamureDays {

class Program {
static void Main(string[] args) {

var list = new List<int>(10) {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

//先頭の5個を取得します。
var top5 = list.Take(5).ToList();//{1, 2, 3, 4, 5}
//先頭の5個以外を取得します。
var fromTop5 = list.Skip(5).ToList();//{6, 7, 8, 9, 10}
return;
}
}
}

Takeが先頭から指定個数を取得するメソッド。Skipが途中から取るメソッド。
なお、指定個数が多すぎても、エラーにはならない。
using System;
using System.Collections.Generic;
using System.Linq;

namespace TawamureDays {

class Program {
static void Main(string[] args) {

var list = new List<int>(10) {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

//先頭の15個を取得します。
var top5 = list.Take(15).ToList();//要素数:10
//先頭の15個以外を取得します。
var fromTop5 = list.Skip(15).ToList();//要素数:0
}
}
}

最後蛇足。LINQの性質。
using System;
using System.Collections.Generic;
using System.Linq;

namespace TawamureDays {

class Program {
static void Main(string[] args) {

var list = new List<int>(10) {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

//先頭の5個を取得します。
var top5 = list.Take(5);

var top5List1 = top5.ToList();//{1,2,3,4,5}
list.Insert(0, 11);
//結果は変わる。
var top5List2 = top5.ToList();//{11,1,2,3,4}
return;
}
}
}
LINQは、実行した(Takeメソッドをコールした)段階では、確定していない。
確定するのは、foreachでのループや、ToList(),ToArray()等のメソッドが呼ばれた時。
スポンサーサイト
当サイトは基本をすっ飛ばしてます。基本文法等は、@ITをどうぞ
カテゴリー: C# | コメント: 0 | トラックバック: 0


この記事へのコメント

コメントの投稿

非公開コメント


サイドバー背後固定表示サンプル

当ブログに書かれたソースコードは流用自由です。

バグ、スペルミス等はありうる事です。

ご利用の際は自己責任でお願いしますm(_ _)m