0
List<string> values_ofColumn = MasterDataTableObject.AsEnumerable().Select(s => s.Field<string>(ColumnName)).Distinct().ToList<string>();
我使用上面的查詢來讀取數據表中的特定列的所有值。 如果,如果我想讀的所有列,我必須處理所有案件system.data.enumerablerow收藏到列表<T>,在運行時間
foreach (string ColumnName in AllColumns)
{
List<string> values_ofColumn = null;
if (MasterDataTableObject.Columns[ColumnName].DataType.Name.ToString() == "String")
{
values_ofColumn = MasterDataTableObject.AsEnumerable().Select(s => s.Field<string>(fieldAttribute)).Distinct().ToList<string>();
}
if (MasterDataTableObject.Columns[ColumnName].DataType.Name.ToString() == "Double")
{
values_ofColumn = MasterDataTableObject.AsEnumerable().Select(s => s.Field<double>(fieldAttribute).ToString()).Distinct().ToList<string>();
}
if (MasterDataTableObject.Columns[ColumnName].DataType.Name.ToString() == "DateTime")
{
values_ofColumn = MasterDataTableObject.AsEnumerable().Select(s => s.Field<DateTime>(fieldAttribute).ToString("MM/dd/yyyy HH:mm:ss")).Distinct().ToList<string>();
}
}
爲什麼我加很多,如果else語句是... 我無法銘刻在MasterDataTableObject.Columns[ColumnName].DataType
Field<T>
我知道,這是編譯時間映射。
有沒有什麼辦法可以使用驅除掉,如果其他
謝謝