我想从列表中'学生状态'属性中不包含字符串'States'的列表中'奖学金'项目删除。C#字符串不包含
if (States != "")
{
scholarships.RemoveAll(s => !s.Student_state.Contains(States));
scholarships.RemoveAll(s => s.Student_state == null);
}
这个!性格没有完成这个。有任何想法吗?
我想从列表中'学生状态'属性中不包含字符串'States'的列表中'奖学金'项目删除。C#字符串不包含
if (States != "")
{
scholarships.RemoveAll(s => !s.Student_state.Contains(States));
scholarships.RemoveAll(s => s.Student_state == null);
}
这个!性格没有完成这个。有任何想法吗?
是否有可能遇到区分大小写问题? String.Contains执行区分大小写的测试。我过去使用以下方法来实现不区分大小写的测试:
(s.Student_state.IndexOf(States, StringComparison.CurrentCultureIgnoreCase) == -1)
这是问题所在。谢谢。 – SRiley22
您正在测试变量状态,而不是字符串“States”(除非该变量是“States”)。
你的代码应该是:
if (States != "")
{
scholarships.RemoveAll(s => !s.Student_state.Contains("States"));
scholarships.RemoveAll(s => s.Student_state == null);
}
对不起,应该已经更清楚了,它是一个变量“国家”。 – SRiley22
@ SRiley22,好的,你可以发布一些样本数据吗?如果是这种情况,它看起来像你的代码应该工作。如果你看看函数的返回值是0吗?更一般地说,你怎么知道它不像你期望的那样工作? – BradleyDotNET
你能试试吗?这里的陈述序列很重要。
if (States != "")
{
scholarships.RemoveAll(s => s.Student_state == null);
scholarships.RemoveAll(s => !s.Student_state.Contains("States"));
}
如何选择您想要的?
if (States != "")
{
scholarships = scholarships.Where(s=> !string.IsNullOrEmpty(s.Student_state) && s.Student_state.Contains(States)).ToList();
}
请详细说明与s.Student_state是。 – lahsrah
Student_state是实体奖学金的一个属性。 's'是lambda语句的一部分s => s' – SRiley22
'student_state'是状态还是位置?根据字符串是否包含值来移除项目 - 可能会产生不良副作用。例如,如果将它用于“弗吉尼亚州”等地点状态,则“西弗吉尼亚州”学生的奖学金也将被移除。 – DanS