이름이 있는 DataTable 열 인덱스 가져오기
저는 열 이름으로 데이터 행의 셀 값을 설정하는 코드를 가지고 있습니다.
row["ColumnName"] = someValue;
열에 있는 이 행에 대한 값도 위에 있는 행의 오른쪽에 바로 설정하고 싶습니다.분명히 제가 열 이름이 아닌 색인으로 셀을 얻는다면 이것은 쉬울 것입니다.그렇다면 열 이름에서 열 인덱스를 가져와 다음 작업을 수행할 수 있는 방법이 있습니까?
row[index + 1] = someOtherValue;
즉, 테이블을 처음 만들 때 열 인덱스와 열 이름에 대한 일종의 사전을 만들어야 합니까? 아니면 나중에 이 작업을 하지 않고 열 이름에서 인덱스를 가져올 수 있습니까?
를 사용하여 열 인덱스를 가져올 수 있습니다.DataTable
. 따라서 언급한 대로 다음 열이 필요하다면 사용합니다.Column.Ordinal + 1
:
row[row.Table.Columns["ColumnName"].Ordinal + 1] = someOtherValue;
경고:
이 코드는 다음 열을 반환하므로 다음 열은 ColumnName
, 문제의 요구대로
시도해 보기:
int index = row.Table.Columns["ColumnName"].Ordinal;
Data Column Collection을 간단히 사용할 수 있습니다.인덱스OF
이름으로 필요한 열의 인덱스를 가져온 다음 행과 함께 사용할 수 있도록 합니다.
row[dt.Columns.IndexOf("ColumnName")] = columnValue;
열 이름을 통해 객체를 얻는 DataRow 확장 방법을 작성했습니다.
public static object Column(this DataRow source, string columnName)
{
var c = source.Table.Columns[columnName];
if (c != null)
{
return source.ItemArray[c.Ordinal];
}
throw new ObjectNotFoundException(string.Format("The column '{0}' was not found in this table", columnName));
}
그리고 이렇게 부릅니다.
DataTable data = LoadDataTable();
foreach (DataRow row in data.Rows)
{
var obj = row.Column("YourColumnName");
Console.WriteLine(obj);
}
언급URL : https://stackoverflow.com/questions/11340264/get-index-of-datatable-column-with-name
'programing' 카테고리의 다른 글
Excel을 사용하여 행렬을 단일 열로 변환하는 방법 (0) | 2023.09.17 |
---|---|
READ_의 차이점은 무엇입니까?Oracle 데이터베이스의 커밋되고 직렬화 가능한 격리 수준? (0) | 2023.09.17 |
C# XML 주석에 '<'자를 표시하는 방법은? (0) | 2023.09.12 |
패브릭 작업에 매개 변수 전달 (0) | 2023.09.12 |
ES6 제너레이터: 반복기의 스택 트레이스가 불량합니다.던지다 (err) (0) | 2023.09.12 |