2009-05-28 8 views
26

그래서 컬렉션에 Bloops 모두에서 이름 및 성을 선택 Linq를를 사용하는 것이 가능Linq 다른 속성에 특정 속성을 선택 하시겠습니까?

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

내가 래 지상

Class Razzie 
    Public FirstName 
    Public LastName 
End Class 

의 클래스가 나는 Bloops의 컬렉션을 가지고 있다고 Bloops와 Razzies의 컬렉션을 반환? 또는 For 루프로 제한되어 있습니다.

혼동을 없애기 위해 VB 또는 C#을 사용합니다. 또한 이것은 아마도 "Where"절을 사용하는 것에 대해) 질문을하게 될 것입니다.

답변

29

이 작업을 수행해야합니다

Dim results = From item In bloops _ 
       Select New Razzie() With _ 
       { _ 
        .FirstName = item.FirstName, _ 
        .LastName = item.LastName _ 
       } 

그리고 당신은 배열이나 List<Bloop>로합니다 (LINQ 쿼리 반환 무엇을) 그냥 ToArray()에 전화를 추가 IEnumerable<Bloop>의 결과를 변환 할 경우 또는 각각 ToList() 확장 메소드.

편집 : 유효한 VB.NET 9 구문을 갖도록 코드를 수정했습니다. 다른 형태로 하나에서 변형이

+0

병이 두 언어 모두 능숙하기 때문에 어느 언어라도 받아 들일 수 있습니다. –

+1

충분히 공정합니다. 방금 VB.NET에서 코드 샘플을 사용하기를 원했을 것입니다. :) – Noldorin

+0

올바른 vb 구문이 아니기 때문에 올바른 C# 구문으로 게시물을 편집 할 수 있습니까? 그런 식으로 내가 무슨 일이 일어나는지 더 잘 이해할 수 있습니다. –

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

C#을 질문에 나열된 태그 중 하나입니다. – KClough

0

사실 Enumerable.Select

를 사용함으로써 달성 될 수 있고, 문자열로 변환하는 int 쿼리를 도시 sample 101 LINQ 샘플있다.

2
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); 
    } 
} 
0
 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"); 
관련 문제