使用LINQ查找姓氏

时间:2012-03-30 11:17:32

标签: linq linq-to-sql

我想在visual studio中使用linq获取姓氏。在我的数据库中,我有字段名称,如“FullName”。

在这个领域我有价值“Subbu Cargos” 我想在我的文本框中显示“Cargos”。

如何制作简单的linq查询?

4 个答案:

答案 0 :(得分:1)

说起来会过于简单:

return FullName.Split(' ').Last()

答案 1 :(得分:0)

我建议不要试图解析姓氏。就像你说的那样,可以转换名字和姓氏,有人可能有第二个名字,或者包含多个单词的姓氏(“van Dijk”),或者可能根本没有输入姓氏。

查看此文章:Falsehoods Programmers Believe About Names

如果您仍想这样做,请尝试以下方法:

customers.Select(c => c.FullName.Split(' ').Last());

您可能无法在服务器端进行此操作。在那种情况下:

customers
    .Select(c => c.FullName)
    .ToList()
    .Select(n => n.Split(' ').Last());

未经测试,但这应该给出一个粗略的想法。

答案 2 :(得分:0)

我建议将其分解到不同的字段 - 名字,中间名,姓氏,标题 - 并在显示时动态重建名称。

如果您仍然决定使用一个字段,请考虑如下查询:

string s = "Subba Cargos";
var lastnames = from name in s.Split(new Char[] { ' ' }).Last<string>()
                        select name;

答案 3 :(得分:0)

你也可以这样做:

customers
.Select (b => b.FullName.Substring ((b.FullName.IndexOf(' ') + 1)));