public static T ToGetInformation<T>(this DataTable dt, string RowName) where T:new() { T RowValue ; RowValue = dt.AsEnumerable().Where(w => { w.Field<T>(RowName); return true; }).Select(s => s).FirstOrDefault(); return RowValue; }
现在的问题是 Select(s => s) 这边返回的数据类型无法强制转化为 T类型
谁遇到过这个问题,求解决
如何转化数据该类型 返回T类型的数据
dt.AsEnumerable是什么类型啊,他跟T有什么关系,linq哪里知道AsEnumerable 后是T类型呢的列表呢,包括你的where选出的也没有指明是T类型
指明类型是没问题的
private T MM<T>() where T: new() { List<T> list = new List<T>(); T t = list.Where(x=>x!=null).Select(v => v).FirstOrDefault(); return t; }
你的select选择的是整行不是cell的值
public static T ToGetInformation<T>(this DataTable dt, string RowName) where T : new() { T RowValue; RowValue = dt.AsEnumerable().First().Field<T>(RowName); return RowValue; }
Select(s => s as T)