我有一个包含不同值的组合框:
public static DataTable GetStates()
{
DataTable myStates = new DataTable();
myStates.Columns.Add("Name", typeof(string));
myStates.Columns.Add("Location", typeof(string));
myStates.Rows.Add("1", "USA");
myStates.Rows.Add("2", "USA");
myStates.Rows.Add("3", "Canada");
return myStates;
}
我希望它在BindStates函数中,它将计算" USA"的出现次数。等等。
答案 0 :(得分:2)
您可以通过对数据表使用LINQ来执行此操作。所以我正在做的是创建一个由DataRow ItemArray中的第二个对象分组的IGrouping。第二步是计算" USA"基。
// Get datatable with data
var states = GetStates();
// Create grouping of rows
var grouping = states.AsEnumerable().GroupBy(row => row.ItemArray[1]).ToList();
// Count how many rows are in the "USA" group
var numOfUSA = grouping.First(group => group.Key == "USA").Count();
显然这个代码可以通过null检查等来改进,这只是为了让你入门。祝你好运!
答案 1 :(得分:2)
public void BindStates(DataTable states)
{
int numberUsa = 0;
foreach (DataRow row in states.Rows)
{
if (row[1].ToString() == "USA")
{
numberUsa++;
}
}
Console.WriteLine(numberUsa.ToString());
}