我创建了以下函数来获取FirstName和LastName并将它们放入字符串FullName。
我的linq语句看起来有点滑稽,因为我在同一行上进行2次查询以获取我需要的信息。
有更好的编码方法吗?
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();
}
}
答案 0 :(得分:4)
怎么样:
ctx.Members.Where(g => g.memID == memID)
.Select(g => g.memFirstName + ", " + g.memLastName).FirstOrDefault()
答案 1 :(得分:1)
如果需要单独存储值,请使用匿名类型,例如:
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()
});
访问返回的数据:
foreach (var str in sel)
{
Debug.WriteLine(str.Normal + ", " + str.Lower + ", " + str.Upper);
}
输出:
WoLfulus, wolfulus, WOLFULUS
David, david, DAVID
如果没有,请使用AdaTheDev所说的内容。