Подтвердить что ты не робот

Linq Выбрать определенные свойства в другой объект?

Так сказать, у меня есть коллекция Bloops

Class Bloop
  Public FirstName
  Public LastName
  Public Address
  Public Number
  Public OtherStuff
End Class

Тогда у меня есть класс Razzies

Class Razzie
  Public FirstName
  Public LastName
End Class

Можно ли использовать Linq для выбора FirstName и LastName из всех Bloops в коллекции Bloops и вернуть коллекцию Razzies? Или я ограничиваюсь For-Loop, чтобы выполнять свою работу?

Чтобы устранить любую путаницу, сделают VB или С#. Кроме того, это, вероятно, приведет к тому, что я задаю вопрос (о том, как использовать предложение "Где" ).

4b9b3361

Ответ 1

Это должно выполнить задание:

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.

Ответ 2

List<Bloop> myBloops = new List<Bloops>;
//populate myRazzies
List<Razzie> myRazzies = myBloops.Select(x => new Razzie() { FirstName = x.FirstName, LastName = x.LastName}).ToList();

Ответ 3

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);
    }
}

Ответ 4

Преобразование из одного типа в другое может быть выполнено с помощью Enumerable.Select

Фактически существует образец из 101 образцов linq, который показывает запрос, преобразующий ints в строки.

Ответ 5

        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");