Linq 检索2个值并通过一次调用插入字符串
我创建了下面的函数来获取FirstName和LastName,并将它们放入字符串FullName中 我的linq语句看起来有点滑稽,因为我在同一行上进行了两次查询,以获取所需的信息 有没有更好的编码方法Linq 检索2个值并通过一次调用插入字符串,linq,entity-framework,Linq,Entity Framework,我创建了下面的函数来获取FirstName和LastName,并将它们放入字符串FullName中 我的linq语句看起来有点滑稽,因为我在同一行上进行了两次查询,以获取所需的信息 有没有更好的编码方法 public static string getMemberFullNamebyID(int memID) { using (var ctx = new GPEntities()) { string fname = string.Empty; st
public static string getMemberFullNamebyID(int memID)
{
using (var ctx = new GPEntities())
{
string fname = string.Empty;
string lname = string.Empty;
fname = ctx.Members.Where(g => g.memID == memID).Select(g => g.memFirstName).FirstOrDefault();
lname = ctx.Members.Where(g => g.memID == memID).Select(g => g.memLastName).FirstOrDefault();
return (lname + ", " + lname).ToString();
}
}
那么:
ctx.Members.Where(g => g.memID == memID)
.Select(g => g.memFirstName + ", " + g.memLastName).FirstOrDefault()
那么:
ctx.Members.Where(g => g.memID == memID)
.Select(g => g.memFirstName + ", " + g.memLastName).FirstOrDefault()
如果需要单独存储值,请使用匿名类型,例如:
var ret = ctx.Members.Where(g => g.memID == memID)
.Select(g => new { First = g.memFirstName, Last = g.memLastName}).FirstOrDefault();
访问匿名类型:
List<string> list = new List<string>();
list.Add("WoLfulus");
list.Add("David");
var sel = list.Select(i => new {
Normal = i,
Lower = i.ToLower(),
Upper = i.ToUpper()
});
输出:
WoLfulus, wolfulus, WOLFULUS
David, david, DAVID
如果没有,请使用AdaTheDev所说的。如果需要单独存储值,请使用匿名类型,例如:
var ret = ctx.Members.Where(g => g.memID == memID)
.Select(g => new { First = g.memFirstName, Last = g.memLastName}).FirstOrDefault();
访问匿名类型:
List<string> list = new List<string>();
list.Add("WoLfulus");
list.Add("David");
var sel = list.Select(i => new {
Normal = i,
Lower = i.ToLower(),
Upper = i.ToUpper()
});
输出:
WoLfulus, wolfulus, WOLFULUS
David, david, DAVID
如果没有,请使用AdaTheDev所说的。您将如何访问匿名类型?我正在使用------memFullName=ctx.Members.Whereg=>g.memID==memID.Selectg=>g.memLastName+,+g.memFirstName.FirstOrDefault——就像@WoLfulus在上面用var写的那样。如果需要方法之外的结果,还可以创建一个元组或自定义类型的实例。@DavidKEgghead我用了一个更好的例子编辑了答案。我之所以进行迭代,是因为我不仅选择了一个对象,而是选择了一个列表。您将如何访问匿名类型?我正在使用------memFullName=ctx.Members.Whereg=>g.memID==memID.Selectg=>g.memLastName+,+g.memFirstName.FirstOrDefault——就像@WoLfulus在上面用var写的那样。如果需要方法之外的结果,还可以创建一个元组或自定义类型的实例。@DavidKEgghead我用了一个更好的例子编辑了答案。我正在进行迭代,因为我不仅选择了一个对象,而是一个列表。