C# 是否在wcf中使用linq和string.compare/string.equals?

C# 是否在wcf中使用linq和string.compare/string.equals?,c#,wcf,linq,C#,Wcf,Linq,我有下面的方法,我想尝试外接程序字符串。比较 public List<Group> GetStudentCollectionByGroup(string anything) { List<Group> groups = (from g in Groups where (from t in g.Groupsz

我有下面的方法,我想尝试外接程序字符串。比较

public List<Group> GetStudentCollectionByGroup(string anything)
{
    List<Group> groups = (from g in Groups
                          where 
                              (from t in g.Groupsz 
                              where t.StudentID == anything 
                                 || t.FirstName == anything 
                                 || t.LastName == anything select t).Count() > 0
                 select g).ToList();

        return groups;
    }
公共列表GetStudentCollectionByGroup(字符串任意项)
{
列表组=(从g开始,按组排列)
哪里
(来自t in g.集团sz)
其中t.StudentID==任何内容
||t.FirstName==任何东西
||t.LastName==任何选择t).Count()>0
选择g.ToList();
返回组;
}

如果我尝试
=
而不是在我的客户端,无论我在文本框中键入什么,我都会以某种方式得到组的返回,无论键入什么。如果我使用
=
,它只会返回与我键入的内容相关联的组(当然属于那个学生),所以我希望字符串。比较可能会有帮助,我只是不知道如何用它构造上面的代码?

如果你用
替换
=
=
您说的是“返回任何
t
的学生id不是
anything
,或者名字不是
anything
,或者姓氏不是
anything
”检查失败的唯一记录是
(anything,anything,anything)

您需要的是不区分大小写的比较

string.Equals(t.FirstName, anything, StringComparision.CurrentCultureIgnoreCase);

如果将
==
替换为
=
您说的是“返回任何
t
的学生id不是
anything
,或者名字不是
anything
,或者姓氏不是
anything
”检查失败的唯一记录是
(anything,anything,anything)

您需要的是不区分大小写的比较

string.Equals(t.FirstName, anything, StringComparision.CurrentCultureIgnoreCase);


可能会有帮助什么?你想完成什么?当前,您的方法将返回所有组,其中组中至少有一个
t
的StudentID、FirstName或LastName与传递函数的字符串匹配。
=
将区分大小写,这是否有问题?我通常使用
String.Contains(anything)
在这些情况下是不区分大小写的部分搜索(至少在使用Linq to Sql时-它会转换为
如%x%
我相信)是的,我希望有人可以搜索名称的小写或大写,但是如果我尝试的话!=然后不管键入什么,它都会以某种方式返回组。如果我使用区分大小写==那么,如果我键入的不是正确的区分大小写的名称,它将不会返回任何内容(显然是我想要的)。我如何返回一个不区分大小写的名称,但当我键入某个名称时,它不会识别它,它将不会显示任何内容。如果我只添加一个名为bla的学生,并将该学生添加到组“mygroup”中使用==可以在文本框中键入bla时返回mygroup。(这很好)但是。。如果我使用!=如果我在文本框中键入“whatever”,它仍然会返回“mygroup”?我想是的仍将只返回属于学生“bla”大写或小写的组,确实如此!但在文本框中键入“anything”时,它也会返回组。所以我想字符串。比较可能有用。可能有用什么?你想完成什么?当前,您的方法将返回所有组,其中组中至少有一个
t
的StudentID、FirstName或LastName与传递函数的字符串匹配。
=
将区分大小写,这是否有问题?我通常使用
String.Contains(anything)
在这些情况下是不区分大小写的部分搜索(至少在使用Linq to Sql时-它会转换为
如%x%
我相信)是的,我希望有人可以搜索名称的小写或大写,但是如果我尝试的话!=然后不管键入什么,它都会以某种方式返回组。如果我使用区分大小写==那么,如果我键入的不是正确的区分大小写的名称,它将不会返回任何内容(显然是我想要的)。我如何返回一个不区分大小写的名称,但当我键入某个名称时,它不会识别它,它将不会显示任何内容。如果我只添加一个名为bla的学生,并将该学生添加到组“mygroup”中使用==可以在文本框中键入bla时返回mygroup。(这很好)但是。。如果我使用!=如果我在文本框中键入“whatever”,它仍然会返回“mygroup”?我想是的仍将只返回属于学生“bla”大写或小写的组,确实如此!但在文本框中键入“anything”时,它也会返回组。因此,我认为String.Compare可能会有所帮助。我同意答案,但是,我会说,将其写成:
t.FirstName.Equals(任意内容,stringcomparison.CurrentCultureIgnoreCase)更具可读性:)。谢谢大家,卢卡斯是对的。当你们第一次发布答案时,我很难弄清楚它去了哪里,但我最终得到了答案@卢卡斯:
NullReferenceException
如果
FirstName
可以为空。我想在这种特殊情况下不应该出现空值,但无论如何值得一提。谢谢:)。我同意这个答案,但是,我要说的是,把它写成:
t.FirstName.Equals(anything,stringcomparison.CurrentCultureIgnoreCase)更具可读性:)。谢谢大家,卢卡斯是对的。当你们第一次发布答案时,我很难弄清楚它去了哪里,但我最终得到了答案@卢卡斯:
NullReferenceException
如果
FirstName
可以为空。我想在这种特殊情况下不应该出现空值,但无论如何值得一提。谢谢:)。