フィールド名を指定してデータを抽出するにはどうしたらいいですか?
LINQラムダ式のSelectを使って取得することができます。
目次
ラムダ式のSelectを利用して特定フィールド名の値を取得する
ラムダ式のSelect区を利用することで、特定フィールド名の値を取得することができます。
・C#の場合
コレクション.Select(x => x.Item1).ToList()
・VB.NETの場合
コレクション.Select(function(x) x.Item1).ToList()
複数の列を取得したい場合は、匿名オブジェクトとして複数フィールドを指定します。
・C#の場合
コレクション.Select(x => new { item1 = x.Item1,
item2 = x.Item2}).ToList()
・VB.NETの場合
コレクション.Select(function(x) New With {Key .item1 = x.Item1,
Key .item2 = x.Item2}).ToList()
List<(int,string)> lstItem = new List<(int,string)>() { (3,"sakura"),(3,"suisei"),(4,"usada"),(4,"koyori") };
//1つ
var ret = lstItem.Select(x => x.Item1).ToList();
ret.ForEach(x => Debug.WriteLine(x));
//複数
var ret2 = lstItem.Select(x => new { item1 = x.Item1,
item2 = x.Item2}).ToList();
ret2.ForEach(x => Debug.WriteLine(x));
Dim lstItem = New List(Of (Integer, String))()
lstItem.Add((3, "sakura"))
lstItem.Add((3, "suisei"))
lstItem.Add((4, "usada"))
lstItem.Add((4, "koyori"))
'1つ
Dim ret = lstItem.[Select](Function(x) x.Item1).ToList()
ret.ForEach(Sub(x) Debug.WriteLine(x))
'複数
Dim ret2 = lstItem.[Select](Function(x) New With {
Key .item1 = x.Item1,
Key .item2 = x.Item2
}).ToList()
ret2.ForEach(Sub(x) Debug.WriteLine(x))
リスキリングでキャリアアップしてみませんか?
リスキリング(学び直し)は、経済産業省が推奨しており、
今だけ、最大70%のキャッシュバックを受けることができます。
最大70%の給付金が出るおすすめのプログラミングスクール!
国策で予算が決められているため申し込みが多い場合は早期に終了する可能性があります!
興味のある方はすぐに確認しましょう。
コメント