我想在visual studio中使用linq获取姓氏。在我的数据库中,我有字段名称,如“FullName”。
在这个领域我有价值“Subbu Cargos” 我想在我的文本框中显示“Cargos”。
如何制作简单的linq查询?
答案 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)));