gpt4 book ai didi

c# - 在 linq 'select new object {

转载 作者:太空宇宙 更新时间:2023-11-03 19:50:03 33 4
gpt4 key购买 nike

我需要在 LINQ select 语句中连接两列,如下所示:

var result = (from i in db.MyTable
blah blah ...
select new MyObject
{
Id = i.MyTableId,
ReportedByName = ub.FirstName + ' ' + ub.LastName
}).First();

正如我所料,ub.FirstName + ' ' + ub.LastName 会引发错误。我将如何使用这种语法?

谢谢!

最佳答案

您当前正在将字符串与 char 连接起来value 而你想要的是连接字符串。字符串 +接线员正在等待另一个 string而不是 char .使用 " "相反:

ReportedByName = ub.FirstName + " " + ub.LastName

当然还有其他方式:

  1. string.Format 或 C# 6.0 字符串的语法糖插值

    ReportedByName = string.Format("{0} {1}", ub.FirstName, ub.LastName)
    ReportedByName = $"{ub.FirstName} {ub.LastName}" //syntactic sugar of option above
  2. string.join (如果你有更多的值(value),我会这样做)

    ReportedByName = string.Join(" ", ub.FirstName, ub.LastName)
  3. string.Concat

    ReportedByName = string.Concat(ub.FirstName, " ", ub.LastName)

因为您在 实体而非内存中的对象的 linq 中 string.Join (因此也是字符串插值)和 string.Format如果您在转换为 sql 查询的 linq 中,则可能无法工作。如果您想使用这些选项,请先将项目检索到内存中(使用 ToList()/AsEnumerable(),然后使用它们连接字符串。请参阅 Jon 的 answer

关于c# - 在 linq 'select new object {,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40549018/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com