我有一个包含以下数据的数据集
Name Value Percent
0-3 months 0 0
3-12 months 0 0
1-5 years 1234.12 28
5-10 years 13144.11 68
10-15 years 0 0
Over 15 years 1233.44 14
Other Income 2245.12 当我尝试的时候
foreach (DataRow dr in dsMaturity.Tables[0].Select("name not like 'Other%'"))
{
TotalValue += double.Parse(dr["Value"].ToString());
}编辑:实际上,类似于上面的代码。我使用类似的循环将数据添加到display bucket,它最终会写入图表。
foreach (DataRow dr in dsMaturity.Tables[0].Rows)
{
//Add to the display bucket
}我将数据排序如下:
0-3 months
10-15 years
1-5 years
3-12 months
5-10 years
Over 15 years为什么?如何对数据进行无序排序?这一点很重要,因为我在图表对象中显示数据。我是不是漏掉了什么?
发布于 2013-03-12 00:15:38
dataTable.Select(filterExpression)不保证排序顺序。正如文档所说,您应该使用一个重载另一个重载来提供排序顺序。
在我们的实验中,结果集是按筛选列排序的,但我不相信以后版本的.NET会以同样的方式工作(因为文档中没有这种方式)。
发布于 2011-06-14 03:35:10
我不确定为什么/如何在不改变原始结果集的情况下解决这个问题,但以下是我的解决方法:
foreach (DataRow dr in dsMaturity.Tables[0].Rows)
{
if (!dr["Name"].ToString().StartsWith("Other "))
{
// adding it to display bucket
}
}发布于 2014-05-12 19:56:27
同意!这很烦人..。我也有同样的问题。
如果您有.net 3.5+,则可以使用Linq来筛选行:
var rows = dt.Rows.Cast<DataRow>().Where(r => !((string)r["Name"]).StartsWith("Other")https://stackoverflow.com/questions/6334821
复制相似问题