2010-04-12 3 views
2

아직 배우고 있습니다 (아기 단계). 함수에 대해 혼란스러워하고 내 데이터 테이블을 다루기위한보다 깔끔한 방법을 찾고 싶습니다.채우기 방법 에 단일 열의 Datarow 값을 입력하십시오.

프로그램의 수명 기간 동안 더 자주 사용되는 테이블의 경우 데이터 테이블에 덤프하고 대신 쿼리합니다. 내가 뭘 바라고하는 X = "이"말 컬럼의 datatables를 조회하고, 호출자에게 반환하는 직접 목록에 열 "Y"의 값을 변환 할 수 있습니다 :

private List<string> LookupColumnY(string hex) 
    { 
     List<string> stringlist = new List<string>(); 
     DataRow[] rows = tblDataTable.Select("Columnx = '" + hex + "'", "Columny ASC"); 
     foreach (DataRow row in rows) { stringlist.Add(row["Columny"].ToString()); } 
     return stringlist; 
    } 

은 누구나 알고 약간 간단한 방법? 나는 이것이 충분히 쉽다는 것을 짐작하지만 foreach 루프를 통해 iterating이 성능에 영향을 미치지 않는다면 이것들을 충분히 수행하는지 궁금합니다. 티아!

답변

4

당신이 단순화하기 위해 LINQ를 사용할 수 있습니다 : 당신이 목록을 반환해야하는 경우

public IEnumerable<string> LookupColumnY(string hex) 
{ 
    return tblDataTable 
       .Select("Columnx = '" + hex + "'", "Columny ASC") 
       .Select(row => row["Columny"].ToString()); 
} 

을, 당신은 ToList() 추가 할 수 있습니다

public IList<string> LookupColumnY(string hex) 
{ 
    return tblDataTable 
       .Select("Columnx = '" + hex + "'", "Columny ASC") 
       .Select(row => row["Columny"].ToString()) 
       .ToList(); 
} 

그러나,이 여전히 선택의 각 행을 반복합니다 .

+0

감사합니다. 매우 감사! – James

관련 문제