C#DataTable根据某一列查找另一列的值

DataTable dt=new DataTable();
            dt.Columns.Add("ID", typeof(int));
            dt.Columns.Add("name",typeof(string));
            dt.Columns.Add("sex", typeof(string));
            dt.Columns.Add("age", typeof(int));

            DataRow dr1=dt.NewRow();
            dr1["ID"] = 1;
            dr1["name"] = "joannes";
            dr1["sex"] = "male";
            dr1["age"] = 32;
            dt.Rows.Add(dr1);

            DataRow dr2 = dt.NewRow();
            dr2["ID"] = 2;
            dr2["name"] = "cuckoo";
            dr2["sex"] = "female";
            dr2["age"] = 29;
            dt.Rows.Add(dr2);

            var test = dt.AsEnumerable().Where(dr => Convert.ToBoolean(dr[1] == "c0uckoo")).Select(dr=>Convert.ToString(dr[2])).ToList();

假设您的数据库列是强类型的(最好的):

dtt.AsEnumerable().Where( dr => dr.Field<bool>("isDefault" ) )
    .Select( dr => dr.Field<int>( "value" ) ).FirstOrDefault();

使用类型转换:

dtt.AsEnumerable().Where( dr => Convert.ToBoolean( dr["isDefault"] ) )
    .Select( dr => Convert.ToInt32( dr["value"] ) ).FirstOrDefault();

解析:

dtt.AsEnumerable().Where( dr => bool.Parse( dr["isDefault"].ToString() ) )
    .Select( dr => int.Parse( dr["value"].ToString() ) ).FirstOrDefault();

 

posted @ 2023-02-23 11:06  Joooannes  阅读(592)  评论(0)    收藏  举报