code

DataRowCollection을 IEnumerable로 변환

codestyles 2020. 12. 3. 07:52
반응형

DataRowCollection을 IEnumerable로 변환


.NET 3.5에서 이와 같은 작업을하고 싶습니다. 가장 빠른 방법은 무엇입니까?

IEnumerable<DataRow> collection = 
    TypedDataSet.TypedTableBase<DataRow>.Rows as IEnumerable<DataRow>;

공분산을 도입하는 .NET 4.0을 사용한다고 가정합니다.

// Presumably your table is of some type deriving from TypedTableBase<T>,
// where T is an auto-generated type deriving from DataRow.
IEnumerable<DataRow> collection = myTypedTable;

테이블 유형 자체는 구현합니다 IEnumerable<T> where T : DataRow.

그렇지 않으면:

IEnumerable<DataRow> collection = myTypedTable.Cast<DataRow>();

당신은 호출 할 수 있습니다 OfType<DataRow>()DataRowCollection.


간단한 직접적인 해결책은 "DataRow []"를 생성하는 System.Data.DataTable 개체의 "Select ()"메서드를 사용하는 것입니다. 여기에서 아래와 같이 Linq를 사용하여 IEnumberable로 처리 할 수 ​​있습니다.

List<MyItem> items = dtItems.Select().Select(row => new MyItem(row)).ToList();

각 행에 대한 유용한 개체 목록을 제공합니다.


메서드 System.Data.DataSetExtensions.dll를 추가하는 프로젝트에 포함하는 경우 기본 제공 확장 메서드가 있습니다 AsEnumerable().

IEnumerable<DataRow> collection = TypedDataSet.TypedTableBase<DataRow>.AsEnumerable();

참고 URL : https://stackoverflow.com/questions/4974159/convert-datarowcollection-to-ienumerablet

반응형