C# system.data.EnumerablerRowCollection要列出<;T>;,在运行时 List values\u of column=MasterDataTableObject.AsEnumerable().Select(s=>s.Field(ColumnName)).Distinct().ToList();

C# system.data.EnumerablerRowCollection要列出<;T>;,在运行时 List values\u of column=MasterDataTableObject.AsEnumerable().Select(s=>s.Field(ColumnName)).Distinct().ToList();,c#,.net,linq,C#,.net,Linq,我使用上述查询从数据表中读取特定列的所有值。 如果我想读所有的专栏,我必须处理所有的案件 List<string> values_ofColumn = MasterDataTableObject.AsEnumerable().Select(s => s.Field<string>(ColumnName)).Distinct().ToList<string>(); foreach(所有列中的字符串ColumnName) { 列的列表值_=null; if

我使用上述查询从数据表中读取特定列的所有值。 如果我想读所有的专栏,我必须处理所有的案件

List<string> values_ofColumn = MasterDataTableObject.AsEnumerable().Select(s => s.Field<string>(ColumnName)).Distinct().ToList<string>();
foreach(所有列中的字符串ColumnName)
{
列的列表值_=null;
if(MasterDataTableObject.Columns[ColumnName].DataType.Name.ToString()=“字符串”)
{
values_of column=MasterDataTableObject.AsEnumerable().Select(s=>s.Field(fieldAttribute)).Distinct().ToList();
}
if(MasterDataTableObject.Columns[ColumnName].DataType.Name.ToString()=“双精度”)
{
values_of column=MasterDataTableObject.AsEnumerable().Select(s=>s.Field(fieldAttribute.ToString()).Distinct().ToList();
}
if(MasterDataTableObject.Columns[ColumnName].DataType.Name.ToString()=“DateTime”)
{
values_of column=MasterDataTableObject.AsEnumerable().Select(s=>s.Field(fieldAttribute).ToString(“MM/dd/yyyyy HH:MM:ss”).Distinct().ToList();
}
}
为什么我添加了很多if-else语句是。。。 我无法在
字段
我知道,这是编译时映射

有什么办法可以让我不用if else吗

谢谢您

foreach(所有列中的字符串ColumnName)
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>();
    }
}
{ 列的列表值_=null; var coll=( 来自MasterDataTableObject.AsEnumerable()中的行 选择行[列名称] ); value_of column=coll.Select(row=>row.ToString()).Distinct().ToList(); }
foreach (string ColumnName in AllColumns)
{
    List<string> values_ofColumn = null;
    var coll =  (
                                from row in MasterDataTableObject.AsEnumerable()
                                select row[ColumnName]
                );
    values_ofColumn = coll.Select(row => row.ToString()).Distinct().ToList<string>();
}