데이터테이블 내 정렬

10693 단어 LINQ
C# code

static void UseOrderByWhere( )

{

DataSet ds
= BuildOneDTDataSet( ); // ds

DataTable dt
= ds.Tables[ " PeopleDT " ]; // ds “PeopleDT” dt

// query3 22 ,

var query3 =

from pl in dt.AsEnumerable( )

orderby pl.Field < int > ( " Age " )

where pl.Field < int > ( " Age " ) > 22

select pl;

System.Console.WriteLine(
" Query3: " );

foreach ( var item in query1) // query3

{

System.Console.WriteLine(
" :{0}, :{1}, :{2} " ,

item.Field
< string > ( " Name " ), item.Field < string > ( " XingBie " ), item.Field < int > ( " Age " ));

}

// query4 20 25 ,

var query4 =

from pl in dt.AsEnumerable( )

orderby pl.Field < int > ( " Age " ) descending

where pl.Field < int > ( " Age " ) > 20

where pl.Field < int > ( " Age " ) < 25

select pl;

System.Console.WriteLine(
" Query4: " );

foreach ( var item in query2) // query4

{

System.Console.WriteLine(
" :{0}, :{1}, :{2} " ,

item.Field
< string > ( " Name " ), item.Field < string > ( " XingBie " ), item.Field < int > ( " Age " ));

}

}



예시 코드의 출력은 다음과 같다. 그 중에서query3 출력은 22세 이상의 기록이고query4 출력은 20~25 사이의 기록이다.
Query3:
이름:오팔,성별:남,나이:24
이름:하칠,성별:남,나이:25
Query4:
이름:오팔,성별:남,나이:24
이름:이화, 성별:여자,나이:22
이름:이사,성별:남,나이:21
기교: LINQ to DataSet 조회 DataTable의 데이터는 간단하게 두 부분으로 나눌 수 있다. 먼저 DataTable를 IEnumerable 데이터 집합으로 변환한 다음에 IEnumerable를 조작한다. 이 단계는 7장에서 소개한 모든 LINQ 조회 조작을 완전히 응용할 수 있다.
linq에서 DataTable를 IEnumerable 데이터 집합으로 변환한 다음 IEnumerable 를 조작합니다
마이크로소프트는 이미 너에게 잘 해 주었으니, 네가 Ilist를 쓸 필요가 없다
dt와list 모두 정렬할 수 있는 실질도 큰 차이가 없어요. 필요하면 코드를 붙여드릴게요.

좋은 웹페이지 즐겨찾기