C# 有没有办法从ObservableCollection中过滤非零数据?
有没有办法从值大于零的ObservableCollection中筛选和分组数据 我有一个加载到ObservableCollection中的excel文件,但在该文件中可能有一些值为零,根据此条件,我需要在SQL中运行查询以获取一些数据,但在运行查询时,使用这些零代码不会返回任何内容 范例 我需要为每个组合构建一个查询,但是在我的ObservableCollection中有超过90k条记录。我正在寻找一个聪明的解决方案,用相同的模式对所有记录进行分组(例如,在本例中是第3行和第4行)不需要具有相同的值,只有相同的模式才能使用所有这些代码运行单个大型查询 目前,我是这样做的:C# 有没有办法从ObservableCollection中过滤非零数据?,c#,sql,C#,Sql,有没有办法从值大于零的ObservableCollection中筛选和分组数据 我有一个加载到ObservableCollection中的excel文件,但在该文件中可能有一些值为零,根据此条件,我需要在SQL中运行查询以获取一些数据,但在运行查询时,使用这些零代码不会返回任何内容 范例 我需要为每个组合构建一个查询,但是在我的ObservableCollection中有超过90k条记录。我正在寻找一个聪明的解决方案,用相同的模式对所有记录进行分组(例如,在本例中是第3行和第4行)不需要具有相
foreach (var item in _sourceStructure)
{
query = prepareQuery(item);
RunQuery(query);
if (errorMessage.Length > 1)
{
Console.WriteLine(errorMessage);
}
query = "";
}
在我的preparQuery方法中,我有这样的东西
query = @"SELECT Column1, Column2, Column3, Column4 FROM SomeTable WHERE "
if (!string.IsNullOrEmpty(item.Column1.ToString()) && item.Column1.ToString() != "0")
{
query = query + "Column1= " + "'" + item.Column1.ToString() + "'" + " and ";
}
if (!string.IsNullOrEmpty(item.Column2.ToString()) && item.Column2.ToString() != "0")
{
query = query + "Column2= " + "'" + item.Column2.ToString() + "'" + " and ";
}
这工作“很好”,但需要很多时间才能完成。
如果你能找到更好的解决方案,我可以试试,我只是想听听你的建议。不要再给ToString打这么多次电话了。您应该执行一次并存储值。并考虑使用String .Frad或StringBuilder。添加是非常资源密集型的 为了加快查询速度,您需要做两件事1)您需要一个为每一行返回数组的接口2)然后使用linq Any获取带零的行,如:var results=_sourceStructure.Where(x=>x.Any(y=>y==“0”).ToArray()@jdweng每次查询运行时(对于每条记录)都会调用接口,这样会更快吗?我不太熟悉接口,我知道如何实现它,但不知道如何提高速度。你能给我一个如何实现它的例子吗?在linq中实现它会比你目前的方式更快。