Linq 查询 Returns 条包含空白字符串数据的记录
Linq Query Returns Records Including Blank String Data
我创建了一个查询来从数据集中过滤选定的日期,例如,过滤字符串是 Day="M, W",我的 table 记录包含一个名为 DAYS_OFFERED 的列。数据可以是 M、W、MW、MWF、T、R 或“”等。我需要检索所有包含 M、W、MW 或 MWF 的记录。现在我的查询 returns 结果包括空白字符串数据。我的以下查询有什么问题:
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));
}
当您想使用 Contains 时,字符串数组是理想的选择。 Day.Split(',') 的结果是一个字符串数组,但您可以通过调用 .ToString() 将其转换回字符串。
如果您想检索问题中所说的所有包含 M、W、MW 或 MWF 的记录(这样您就不需要过滤字符串),您可以这样做:
string[] itemsIWant = {"M", "W", "MW", "MWF"};
var myCourses = Courses.Where(a => itemsIWant.Contains(a.DAYS_OFFERED));
如果您要在 Contains 中使用过滤字符串,请事先删除任何不需要的项目,例如空字符串:
string[] items = Day.Split(',').Where(str => str != "").ToArray();
var filteredCourses = Courses.Where(a => items.Contains(a.DAYS_OFFERED));
我创建了一个查询来从数据集中过滤选定的日期,例如,过滤字符串是 Day="M, W",我的 table 记录包含一个名为 DAYS_OFFERED 的列。数据可以是 M、W、MW、MWF、T、R 或“”等。我需要检索所有包含 M、W、MW 或 MWF 的记录。现在我的查询 returns 结果包括空白字符串数据。我的以下查询有什么问题:
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));
}
当您想使用 Contains 时,字符串数组是理想的选择。 Day.Split(',') 的结果是一个字符串数组,但您可以通过调用 .ToString() 将其转换回字符串。
如果您想检索问题中所说的所有包含 M、W、MW 或 MWF 的记录(这样您就不需要过滤字符串),您可以这样做:
string[] itemsIWant = {"M", "W", "MW", "MWF"};
var myCourses = Courses.Where(a => itemsIWant.Contains(a.DAYS_OFFERED));
如果您要在 Contains 中使用过滤字符串,请事先删除任何不需要的项目,例如空字符串:
string[] items = Day.Split(',').Where(str => str != "").ToArray();
var filteredCourses = Courses.Where(a => items.Contains(a.DAYS_OFFERED));