-1
여기 노드는 <string, List<string>>
의 사전이고 childnodes는 List<string>
이고 parentnode는 문자열입니다. 자식 노드를 지울 때마다 노드의 모든 키 값이 지워집니다.사전 [key] = value는 참조 유형입니까?
public void processData()
{
var hcols = Input.Columns.Take(Input.Columns.Count).ToList();
var childNodes = new List<string>();
var parentNode = "Default";
for (var i= 1 ; i < hcols.Count -1 ; i++)
{
var splitString = hcols[i].Name.Split('_');
if (nodes.ContainsKey(splitString[0]))
{
childNodes.Add(splitString[1]);
}
else
{
var childNodes2 = childNodes;
if (!nodes.ContainsKey(splitString[0]) && childNodes.Count > 0)
{
nodes[parentNode] = childNodes2;
}
nodes.Add(splitString[0], null);
parentNode = splitString[0];
childNodes.Clear();
if (splitString.Length > 1) childNodes.Add(splitString[1]);
}
Array.Clear(splitString, 0, splitString.Length);
}
nodes[parentNode] = childNodes;
}
무엇이 질문입니까? –
'List'만 만들면됩니다. 이 개체는 참조 형식입니다. 모든 키에 동일한 목록이 추가됩니다. 각 키에 대해 별도의 목록을 만들어야합니다. 그렇지 않으면 설명 된 동작이 적용됩니다. –
Baldrick