我正在研究.NET CORE 6。我已經嵌套Dictionary<int, string>了我在回圈中將值添加到字串中的嵌套字典的位置。該字串包含多個記錄,其中每個記錄包含 15 列,因此字典對于保存鍵很有用。
15 次迭代后,我將嵌套/子字典添加到父字典Dictionary<string, string>,然后將嵌套字典設定為從計數器 0 重新開始。問題是一旦我使用 清除嵌套字典Clear(),它也會從父字典中清除資料。我需要這方面的幫助以及如何避免這種情況,dataItemDictionary.Clear();
private Dictionary<string, Dictionary<int, string>> ConvertStream(string stream)
{
Dictionary<string, Dictionary<int, string>> dataDictionary = new Dictionary<string, Dictionary<int, string>>();
Dictionary<int, string> dataItemDictionary = new Dictionary<int, string>();
if (!string.IsNullOrWhiteSpace(stream))
{
string column = string.Empty;
int dataItemDictionaryindex = 0;
int dataDictionaryIndex = 0;
int columnCounter = 16;
foreach(char c in stream)
{
if(c.Equals('|'))
{
dataItemDictionary.Add(dataItemDictionaryindex, column);
column = string.Empty;
dataItemDictionaryindex ;
if (columnCounter == dataItemDictionaryindex)
{
Dictionary<int, string> data = new Dictionary<int, string>();
data = dataItemDictionary; // need help here...
dataDictionary.Add("Record@" dataDictionaryIndex, data);
dataItemDictionary.Clear();
dataDictionaryIndex ;
columnCounter = columnCounter * (dataDictionaryIndex 1);
}
}
else
{
if (!c.Equals('\r') && !c.Equals('\n'))
{
column = column c;
}
}
}
}
return dataDictionary;
}
uj5u.com熱心網友回復:
Dictionary<TKey, TValue>是參考型別。使用 的復制建構式來Dictionary<TKey, TValue>創建一個新的集合實體。
Dictionary<int, string> data = new Dictionary<int, string>(dataItemDictionary);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/480285.html
標籤:C# 字典 asp.net-core-6.0
