LINQ 에 대한 기본적인 설명은 http://whiteat.com/54023 를 참조하세요.
사용자 정의 클래스로 LINQ 사용하기
사용자가 정의한 class Person 데이터를 검색하는 방법을 알아보겠습니다.
먼저 name 과 number 멤버를 가진 Person 을 정의 합니다.
class Person { public string name; public int number;
public Person(string _name, int _b) { name = _name; number = _b; } } |
main 에 검색에 사용할 person 데이터를 추가합니다.
List<Person> persons = new List<Person>() { new Person("aa", 1), new Person("dd", 2), new Person("aa", 10) }; |
name 이 "aa"인 것을 골라내는 쿼리를 생성합니다. 이때 쿼리가 실행되지는 않고 쿼리문만 생성하는 것입니다.
즉, 이때 검색이 실행되지 않는 것입니다.~
// 쿼리 생성 (이때 쿼리가 실행되지는 않습니다.) IEnumerable < Person > personQuery = from persons1 in persons where persons1.name == "aa" select persons1; |
쿼리를 실행하여 출력합니다. foreach (Person p in personQuery) 수행시 앞에서 생성한 쿼리 문이 생성되는 것입니다.~
// 쿼리 실행 foreach (Person p in personQuery) { Console.WriteLine("name: "+ p.name+", "+ p.number.ToString()); } |
전체 소스
using System; using System.Collections.Generic; using System.Linq; using System.Text;
// 출처: http://whiteat.com // Person 클래스를 데이터로 갖는 코드에서 // Person 데이터를 LINQ로 검색하는 예제입니다.
namespace WATLINQ1 { class Program { static void Main(string[] args) { // 데이터 선언 List<Person> persons = new List<Person>() { new Person("aa", 1), new Person("dd", 2), new Person("aa", 10) };
// 쿼리 생성 (이때 쿼리가 실행되지는 않습니다.) IEnumerable < Person > personQuery = from persons1 in persons where persons1.name == "aa" select persons1;
// 쿼리 실행 foreach (Person p in personQuery) { Console.WriteLine("name: "+ p.name+", "+ p.number.ToString()); }
} }
class Person { public string name; public int number;
public Person(string _name, int _b) { name = _name; number = _b; } } } |
결과는 아래와 같습니다.
- [2018/02/26] List 에서 고유값 얻기 (4027)
- [2015/05/22] C#, 아두이노 간의 WIFI 통신으로 LCD 제어 (4566)
- [2015/03/13] 항상 마지막에 추가한 TEXT 보이게 (15782)
- [2014/11/27] 블루투스 장치 추가 (4409)
- [2014/01/17] ComboBox Text 편집 안되게 (14491)
- [2014/01/08] if 문에서 여러개 비교할때 (25340) *3
- [2013/12/30] C++, C# 간단한 기능 비교 (12884)
- [2013/12/18] 3자리마다 ,(콤마) 찍기 (원화, 달러 표시) (15224)
- [2013/09/29] 설치된 IE 버전 얻기 (12397)
- [2013/08/29] byte array to Hexa String (13026)