C# 统计datatable中一列字符串出现的次数,查找出现次数为1的字符串;汇总到另一个datatable
时间: 2024-10-20 10:03:01 浏览: 78
在C#中,可以使用`DataTable`的`Compute`方法来统计某一列字符串出现的次数,特别是当需求是查找出现次数为1的特定字符串时。这里有一个小例子[^1]:
```csharp
// 假设我们有以下DataTable
DataTable dataTable = new DataTable();
dataTable.Columns.Add("ColumnWithStrings");
dataTable.Rows.Add("Value1");
dataTable.Rows.Add("Value2");
dataTable.Rows.Add("Value1");
dataTable.Rows.Add("Value3");
// 计算字符串出现次数
string columnName = "ColumnWithStrings";
string targetValue = "Value1"; // 我们要查找出现次数为1的值
// 使用Compute方法
int count = Convert.ToInt32(dataTable.Compute($"COUNT(*) WHERE {columnName} = '{targetValue}'", ""));
if (count == 1)
{
Console.WriteLine($"The string '{targetValue}' appears exactly once in the column.");
}
else
{
Console.WriteLine($"The string '{targetValue}' does not appear with a count of 1.");
}
// 如果你想汇总到另一个DataTable,可以创建一个新的DataTable并只添加符合条件的数据
DataTable resultTable = dataTable.Clone();
foreach (DataRow row in dataTable.Rows)
{
if (Convert.ToInt32(row[columnName]) == 1 && row[columnName].ToString() == targetValue)
{
resultTable.ImportRow(row);
}
}
resultTable.WriteToXml("ResultTable.xml", XmlWriteMode.WriteSchema); // 或者其他适当的保存方式
```
阅读全文