C# 对于每个条目都有多个值的selectlist,如何处理空条目?

C# 对于每个条目都有多个值的selectlist,如何处理空条目?,c#,.net-core,C#,.net Core,这是我的代码,它适用于有姓氏的人。但是如果姓氏为空,则selectlist条目根本不显示任何信息,我如何防止出现这种情况?简单方法: var studentInfo = _context.Student .Select(s => new { Id = s.Id, Name = s.FirstName + " " + s.SurName + " " + s.LastName + " - " + s.StudentCode });

这是我的代码,它适用于有姓氏的人。但是如果姓氏为空,则selectlist条目根本不显示任何信息,我如何防止出现这种情况?

简单方法:

var studentInfo = _context.Student
    .Select(s =>
    new
    {
        Id = s.Id,
        Name = s.FirstName + " " + s.SurName + " " + s.LastName + " - " + s.StudentCode
    });

ViewBag.Students = new SelectList(studentInfo, "Id", "Name");

这也可能有效-如果姓氏不在,包括删除剩余的空格:)

var students=newlist()
{ 
新学生(){FirstName=“John”,姓氏=“Wick”,LastName=“Doe”,StudenCode=“666”},
新学生(){FirstName=“James”,LastName=“Bond”,StudenCode=“0007”}
};
var formattedStudents=students.Select(p=>new{Name=Regex.Replace($“{p.FirstName}{p.LastName}{p.LastName}-{p.StudenCode}”,
@“\s+”,“”,
RegexOptions.Compiled)});

s.lausname.GetValueOrDefault(“”)
也许吧?如果
s.lasname
null
,则应返回空字符串。(这是LinqToEntity还是LinqToSql?)你是说FirstOrDefault?这不起作用,无论如何它已经解决了,谢谢你的时间!不,我的意思是,但它显然不适用于
string
@OmarRuder。如果您的问题已得到回答,请发布答案或接受任何已发布的答案,以便其他人也可以从中学习。
var studentInfo = _context.Student
    .Select(s =>
    new
    {
        Id = s.Id,
        Name = string.IsNullOrEmpty(s.SurName)
            ? s.FirstName + " " + s.LastName + " - " + s.StudentCode
            : s.FirstName + " " + s.SurName + " " + s.LastName + " - " + s.StudentCode
    });

ViewBag.Students = new SelectList(studentInfo, "Id", "Name");
var students = new List<Student>() 
{ 
    new Student() { FirstName = "John", SurName = "Wick", LastName = "Doe", StudenCode = "666" }, 
    new Student() { FirstName = "James", LastName = "Bond", StudenCode = "0007" } 
};

var formattedStudents = students.Select(p => new { Name = Regex.Replace($"{p.FirstName} {p.SurName} {p.LastName} - {p.StudenCode}", 
                                                                        @"\s+"," ", 
                                                                        RegexOptions.Compiled) });