在SortedDictionary中添加
本文关键字:添加 SortedDictionary | 更新日期: 2023-09-27 18:27:17
如果表名和数组列表存在于相同的键添加记录中,我想将表名添加为字符串,将表值添加为arraylist。。。此处显示的密钥已存在。我可以修改的地方:
SortedDictionary<string, ArrayList> DealInfo = new SortedDictionary<string, ArrayList>();
ArrayList Deal = new ArrayList();
string DealName=string.Empty;
foreach (DataTable table in RecentAddedDeal.Tables)
{
foreach (DataRow dr in table.Rows)
{
if (!DealInfo.ContainsKey(Convert.ToString(dr["DealTab"])))
{
DealName = Convert.ToString(dr["DealTab"]);
}
Deal.Add(dr);
DealInfo.Add(DealName, Deal);
}
}
很难准确说出你想要什么,因为你的描述说你想使用TableName作为键,但你的代码是从行中添加一列作为键。
按照TableName应该是关键的想法,这样的东西应该有效:
var dealInfo = new SortedDictionary<string, List<DataRow>>();
foreach (DataTable table in RecentAddedDeal.Tables)
{
if (!dealInfo.ContainsKey(table.TableName))
{
dealInfo.Add(table.TableName, table.Rows.Cast<DataRow>().ToList());
}
}
按照你想在每一行中为键划掉一列的想法,你可以做这样的事情:
var dealInfo = new SortedDictionary<string, List<DataRow>>();
foreach (DataTable table in RecentAddedDeal.Tables)
{
foreach (DataRow row in table.Rows)
{
var dealName = row["DealTab"].ToString();
if (dealInfo.ContainsKey(dealName))
{
dealInfo[dealName].Add(row);
}
else
{
dealInfo.Add(dealName, new List<DataRow> {row});
}
}
}
要用特定DealName的行中的数据填充ListView,您可以找到该交易名称的字典条目,并通过以下方式访问行列表:
foreach (DataRow row in dealInfo["SomeDealName"])
{
// Here you have access to the rows where row["DealTab"] == "SomeDealName"
// You can fill a list view with some column value from the row like:
listView1.Add(row["SomeColumnName"].ToString());
}