Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linq 检索2个值并通过一次调用插入字符串_Linq_Entity Framework - Fatal编程技术网

Linq 检索2个值并通过一次调用插入字符串

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

我创建了下面的函数来获取FirstName和LastName,并将它们放入字符串FullName中

我的linq语句看起来有点滑稽,因为我在同一行上进行了两次查询,以获取所需的信息

有没有更好的编码方法

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我用了一个更好的例子编辑了答案。我正在进行迭代,因为我不仅选择了一个对象,而是一个列表。