使用linq从姓氏+“,”+ firstname的组合中搜索firstname

时间:2012-05-25 11:28:35

标签: c# linq sql-server-2008

我写了一个存储过程,它以下面的格式返回客户名称

LastName+", "+FirstName

我已将其分配给以下属性类。

Customer = DbContext.ExecuteStoreQuery<SearchEmployeeCDTO>("exec GetCustomerDetails").AsQueryable().ToList();

现在我想搜索下面的姓氏,就像我为客户公司名称

所做的那样
if(CompanyName!=null && LastName==null)
Customer = Customer.Where(c => c.CompName.Contains(CompanyName)).ToList();

请建议我如何从lastName和FirstName格式的组合中搜索LastName

感谢,

2 个答案:

答案 0 :(得分:1)

也许这个?

if(LastName!=null)
  Customer = Customer.Where(c => c.CustName.StartsWith(LastName)).ToList();

答案 1 :(得分:0)

如果您尝试检查另一个列表包含的值是否相同,那么您可以使用:(如果您将这些值作为通用列表元素的不同属性检索)

bool b = your1stList.Exists(c=> c.firstName == your2ndList.firstName ,
                               c.middleName == your2ndList.middleName ,
                               c.lastName  == your2ndList.lastName)

if ( b == true) 
{ 
  MessageBox.Show("You already have this Customer"); 
}

这是检索所有属性而不进行任何连接活动的好方法。在未来查询中避免一些令人头疼的问题;)

另一方面,如果我们从您的查询继续,那么您需要将lastname + firstName的值转换为字符串并使用String.Split(“,”)函数放入字符串数组然后如果单词lastName + firstname检查lastname的array [0]索引和firstname的数组[1]。

选择您想要的方式..