Asi*_*rif 3 c# linq devexpress
通过此代码,我获得了AspxGrid中选定行的列表。
string[] fieldName = new string[] { "UserId", "Name", "Address" };
List<object> SelectedList = Grid.GetSelectedFieldValues(fieldName);
Run Code Online (Sandbox Code Playgroud)
现在,我要执行以下操作之一。
List<object>成List<Users>我试过以下两种方法,但是会发生异常。
无法将类型为“ System.Object []”的对象转换为类型为“ CubeDataObject.Claims”的对象。
List<Users> mylist = (List<Users>)(Object)SelectedList;
List<Users> listd = SelectedList.Select(n => (Users)n).ToList();
Run Code Online (Sandbox Code Playgroud)
我也尝试了许多其他方法,但很累。
对于这种简单的Cast品尝,Enumerable存在-extension-method:
var myList = SelectedList.Cast<User>();
Run Code Online (Sandbox Code Playgroud)
现在,您可以轻松过滤:
var result = myList.Where(x => x.userId == 1);
Run Code Online (Sandbox Code Playgroud)
看来你有 boxed 的列表object[]。所以,你需要拆箱,并得到的值UserId,Name,Address其对应的指数。
这是示例:
List<Users> mylist = SelectedList
.Where(item => (int)((object[])item)[0] == 1)
.Select(item =>
{
var values = (object[])item;
return new Users()
{
UserId = (int)values[0],
Name = (string)values[1],
Address = (string)values[2]
};
})
.ToList();
Run Code Online (Sandbox Code Playgroud)