[英]How to add Sorted List within another Sorted List in C#?
我收到此錯誤,因為我在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對象,其中包含鍵的字符串和值的SortedList(string,string),但是您不會向其中添加這些類型; 而不是2個字符串對象。
您需要添加一個字符串和一個SortedList(字符串,字符串),而不是2個字符串對象。
如果要向slCodes中的現有排序列表中添加內容,則必須先查找該列表,然后再向其中添加2個字符串。
編輯:由於某些原因,堆棧溢出使“ <>”不可見,因此我使用了括號。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.