Bloopsのコレクションがあるとしましょう
Class Bloop
Public FirstName
Public LastName
Public Address
Public Number
Public OtherStuff
End Class
それから私はラジーのクラスを持っています
Class Razzie
Public FirstName
Public LastName
End Class
Linqを使用して、Bloopsのコレクション内のすべてのBloopsからFirstNameとLastNameを選択し、Razziesのコレクションを返すことはできますか?それとも、For-Loopに限定して仕事をしているのですか?
混乱を解消するために、VBまたはC#のいずれかを使用します。また、これにより、( "Where"句の使用について).
これは仕事をするはずです:
_Dim results = From item In bloops _
Select New Razzie() With _
{ _
.FirstName = item.FirstName, _
.LastName = item.LastName _
}
_
そして、結果を_IEnumerable<Bloop>
_(LINQクエリが返すもの)から配列または_List<Bloop>
_に変換する場合は、ToArray()
またはToList()
への呼び出しを追加するだけですそれぞれ拡張メソッド。
編集:コードが修正され、有効なVB.NET 9構文が含まれるようになりました。
List<Bloop> myBloops = new List<Bloops>;
//populate myRazzies
List<Razzie> myRazzies = myBloops.Select(x => new Razzie() { FirstName = x.FirstName, LastName = x.LastName}).ToList();
public void Linq9()
{
string[] words = { "Apple", "BlUeBeRrY", "cHeRry" };
var upperLowerWords =
from w in words
select new { Upper = w.ToUpper(), Lower = w.ToLower() };
foreach (var ul in upperLowerWords)
{
Console.WriteLine("Uppercase: {0}, Lowercase: {1}", ul.Upper, ul.Lower);
}
}
C# Sample - Thanks to earlier posters.
List<clsObj> myList = new List<clsObj>();
clsObj clsObjInstance = null;
for (int i = 0; i < 10; i++)
{
clsObjInstance = new clsObj() { x = (i+1) % 3, a = "A" + i.ToString() };
myList.Add(clsObjInstance);
}
List<int> extIntList = myList.Select(u => u.x).ToList();
foreach (int u in extIntList)
Console.Write(u.ToString() + "\t");
List<string> extStringList = myList.Select(u => u.a).ToList();
foreach (string u in extStringList)
Console.Write(u + "\t");
あるタイプから別のタイプへの変換は、 Enumerable.Select を使用して実行できます。
実際、intを文字列に変換するクエリを示す101 linqサンプルの sample があります。