如何解决Linq查询返回包含空白字符串数据的记录
我创建了一个查询以从数据集中过滤选定的日期,例如,过滤字符串为Day =“ M,W”,我的表记录包含名为DAYS_OFFERED的列。数据可以是M,W,MW,MWF,T,R或“”等。我需要检索所有包含M,W,MW或MWF的记录。现在,我的查询返回的结果包括空白字符串数据。我在下面的查询中出了什么问题?
var Courses= db.myTable;
if (Day != null)
{
string items = Day.Split(',').ToString();
Courses = Courses.Where(a => items.Contains(a.DAYS_OFFERED) || items.Replace(",",string.Empty).Contains(a.DAYS_OFFERED));
}
解决方法
当您要使用“包含”时,字符串数组是理想的。 Day.Split(',')的结果是一个字符串数组,但是您可以通过调用.ToString()将其转换回字符串。
如果您要按照问题中的说明检索包含M,W,MW或MWF的所有记录(这样就不需要过滤字符串),可以执行以下操作:
string[] itemsIWant = {"M","W","MW","MWF"};
var myCourses = Courses.Where(a => itemsIWant.Contains(a.DAYS_OFFERED));
如果要在“包含”中使用过滤器字符串,请事先删除所有不需要的项目,例如空字符串:
string[] items = Day.Split(',').Where(str => str != "").ToArray();
var filteredCourses = Courses.Where(a => items.Contains(a.DAYS_OFFERED));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。