Alors dis que j'ai une collection de Bloops
Class Bloop
Public FirstName
Public LastName
Public Address
Public Number
Public OtherStuff
End Class
Ensuite, j'ai une classe de Razzies
Class Razzie
Public FirstName
Public LastName
End Class
Est-il possible d’utiliser Linq pour sélectionner le prénom et le nom parmi tous les objets Bloops de la collection Bloops et renvoyer une collection de Razzies? Ou suis-je limité à une boucle For-Loop pour faire mon travail?
Pour dissiper toute confusion, VB ou C # fera l'affaire. De plus, cela me mènera probablement à la question de (Qu'en est-il de l'utilisation d'une clause "Où").
Cela devrait faire le travail:
Dim results = From item In bloops _
Select New Razzie() With _
{ _
.FirstName = item.FirstName, _
.LastName = item.LastName _
}
Et si vous souhaitez convertir le résultat de IEnumerable<Bloop>
(ce que renvoie la requête LINQ) en un tableau ou en List<Bloop>
, ajoutez simplement un appel aux méthodes d'extension ToArray()
ou ToList()
, respectivement.
Modifier: le code a été corrigé pour que sa syntaxe VB.NET 9 soit maintenant valide.
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");
Vous pouvez transformer un type en un autre en utilisant Enumerable.Select
En fait, il existe un échantillon à partir de 101 exemples linq qui montre une requête transformant des entiers en chaînes.