正在传递数据
本文关键字:数据 | 更新日期: 2023-09-27 18:00:13
我现在有点像foreach循环的噩梦。简而言之,我想做的是拆分一个字符串,然后根据该字符串过滤这些数据。然后,我需要将所述数据绑定到一个控件,以便进一步过滤它。到目前为止,我有以下代码
if (Session["Contract"] != null)
{
string[] contract = Session["Contract"].ToString().Split(',');
foreach (string i in contract)
{
if (i.ToString() != "")
{
data = data.Where(x => x.Term.Trim().ToUpper().Contains(i.ToString().Trim().ToUpper()));
}
}
}
LV_Jobs.DataSource = data;
LV_Jobs.DataBind();
现在,当循环通过时,过滤工作正常,但一旦完成一项,数据变量就会被清除?显然,我需要将"数据"从foreach循环中传递回来。有人能告诉我怎么做吗???
每次循环迭代时都会重置data
。试试这个(取决于data
是什么)
var filteredData = new List<string>();
if (Session["Contract"] != null)
{
filteredData = Session["Contract"].ToString().Split(',').Join(
data,
i => i.ToString().Trim().ToUpper(),
x => x.Term.Trim().ToUpper(),
(i, x) => x);
}
LV_Jobs.DataSource = filteredData;
LV_Jobs.DataBind();
只需在for/foreach范围外声明的结果列表或任何其他数据结构中收集所需的数据。
您的data
变量未被清除。相反,在foreach
的最后一次迭代中,其中i.ToString() != ""
,您的Where()
条件不为真。所以data
变成了一个空列表。
当你找到你要找的东西时,你可以从foreach
中选择break
。