【发布时间】:2021-05-10 23:22:27
【问题描述】:
我正在尝试使用 LINQ 在 DataTable 中搜索三个字符串列[start_date, end_date, expected_visits],但第三列有很多行,如图所示
所以我用\n 拆分第三个,但我想循环日期以将其与 txtSearchYear 的文本进行比较并将结果作为 DataTable 返回,当我尝试使用 ForEach 时,如我的代码所示,出现错误我说A local or parameter named 'e' cannot be declared in this scope because that name is used in an enclosing local scope to define a local 这是我的代码...
var tblResult =
tbl
.AsEnumerable()
.Where(x =>
x.Field<string>("start_date").Substring(0, 4).Equals(txtSearchYear.Text.Trim())
|| x.Field<string>("end_date").Substring(0, 4).Equals(txtSearchYear.Text.Trim())
|| x.Field<string>("expected_visits").Split('\n').ToList().ForEach((e) =>
{
e.Substring(0, 4).Equals(txtSearchYear.Text.Trim())
}));
if (tblResult.Any())
{
GetData(tblResult.CopyToDataTable());
}
else
{
DGVData.Rows.Clear();
}
【问题讨论】:
-
你能不能把
ForEach中的e改成不同的名字?你不理解的错误是什么? -
我看了更深一点,您的代码无效。你在用什么
ForEach?这是错误的。您应该拆分Environment.NewLine,然后使用.Any检查是否有任何行与您的搜索文本匹配。 -
@Enigmativity 非常感谢,当我使用
.Any时问题解决了
标签: c# winforms linq datatable