如何在c#中添加排序列表到另一个排序列表
本文关键字:排序 列表 另一个 添加 | 更新日期: 2023-09-27 18:18:13
我得到这个错误,因为我有一个重复的键在SortedList。
项目已添加。字典中的键:'V22.1'添加的键:'V22.1'
但是这些重复键的值是不同的。所以我想在前面的重复键之前添加另一个对象,以便找到它的值。我想把SortedList在一个SortedList。说明我的意图,例如:
(key)"ICD9" : (key)"V22.1" : (value)"Supervision of other normal pregnancy"
(key)"ICD10" : (key)"V22.1" : (value)"Motorcycle passenger injured in collision with two- or three-wheeled motor vehicle in nontraffic accident"
我希望这有意义。我正在考虑这样做:
SortedList<string, SortedList<string, string>> slCodes;
slCodes = new SortedList<string, SortedList<string, string>>();
但是我现在卡住的部分是我如何添加到SortedList内的SortedList?我被困在这里了:
strDesc = tbDesc.Text.Trim();
tblCodes = new DataTable();
GetCodesByDescription(strDesc, ref tblCodes); //<--This queries from database
DataView dvCodes = new DataView(tblCodes);
dvCodes.RowFilter = "CodeType='ICD10' OR CodeType='ICD9'";
foreach(DataRowView drv in dvCodes)
{
slCodes.Add(drv["Code"].ToString().Trim(), //<--Throws error here.
drv["Description"].ToString().Trim());
}
这是目前我被困在添加到SortedList中的SortedList。我甚至不确定这种在键中包含键-值对的方法是否正确。请帮助。
您需要首先检查代码类型,以确定要添加到哪个子列表,以及是否需要创建一个新的子列表。
foreach(DataRowView drv in dvCodes)
{
var codeType = drv["CodeType"].ToString().Trim();
var code = drv["Code"].ToString().Trim();
var description = drv["Description"].ToString().Trim();
if(slCodes.ContainsKey(codeType))
{
slCodes[codeType].Add(code, description);
}
else
{
var subList = new SortedList<string, string>();
subList.Add(code, description);
slCodes.Add(codeType, subList);
}
}
或者,因为您只提取ICD9和ICD10代码,您可以预填充两个子列表
var slCodes = new SortedList<string, SortedList<string, string>>();
slCodes.Add("ICD9", new SortedList<string, string>());
slCodes.Add("ICD10", new SortedList<string, string>());
dvCodes.RowFilter = "CodeType='ICD10' OR CodeType='ICD9'";
foreach(DataRowView drv in dvCodes)
{
var codeType = drv["CodeType"].ToString().Trim();
var code = drv["Code"].ToString().Trim();
var description = drv["Description"].ToString().Trim();
slCodes[codeType].Add(code, description);
}
slCodes是一个包含字符串键和SortedList <string, string>
值的SortedList对象,但您不添加这些类型到它;而不是两个字符串对象。
您需要添加一个字符串和一个SortedList <string, string>
,而不是两个字符串对象。
如果你想在slCodes中添加一些东西到现有的排序列表中,那么你必须在添加2个字符串之前先查找所述列表。