我希望能够选择多个列并遍历检索到的行并将所选字段存储在字符串中。
从客户中选择a.firstname,a.lastname,其中a.id ='123'并循环遍历已退出的行并让它们写入类似
的字符串FirstName = John; LastName = Doe
FirstName = Steve; LastName = Smith
我有linq声明为
IList<string> strgradeandbatch = new List<string>();
strgradeandbatch = context.GradeAndBatches
.Where(T => T.RequestGuid == request.ItemGuid)
.Select(T => new{T.GradeName, T.Batch}).ToList();
显然这是错误的,不知道该怎么做。谢谢你提前帮助
答案 0 :(得分:1)
Select方法将查询结果投影到匿名类型对象的列表中,因此它可以与字符串列表一起使用。
一种解决方案是创建一个新类
public class Grade
{
public string GradeName {get; set;}
public string Batch {get; set;}
}
将与Select方法
一起使用var strgradeandbatch = context.GradeAndBatches
.Where(T => T.RequestGuid == request.ItemGuid)
.Select(T => new Grade
{
GradeName = T.GradeName,
Batch = T.Batch
}).ToList();
答案 1 :(得分:1)
我认为你几乎是正确的。只需删除IList<string> strgradeandbatch = new List<string>()
并使用匿名类型var strgradeandbatch
。
string GradeName, Batch;
var strgradeandbatch = context.GradeAndBatches
.Where(T => T.RequestGuid == request.ItemGuid)
.Select(T => new{T.GradeName, T.Batch}).ToList();
foreach(var item in strgradeandbatch)
{
GradeName = item.GradeName;
Batch = item.Batch;
}
(注意:如果使用匿名类型,则无法从方法中返回此值)