2017-03-03 28 views
0

如何建立密钥对列表(INT键,字符串值?),并刷新后,我得到新的XML:建设和刷新静态列表

 List<KvPair> source = new List<KvPair> 
     { 
      new KvPair {Key = null, Value = "Null"}, 
      new KvPair {Key = 0, Value = "No"}, 
      new KvPair {Key = 1, Value = "Yes"} 

     }; 

列表取决于从XML。如果我将刷新列表,并且会从XML只得到2个值:NULL,0,那么列表应该只有2个元素:

new KvPair {Key = null, Value = "Null"}, 
    new KvPair {Key = 1, Value = "Yes"} 

我应该使用静态列表? 比这更好的方式:

private List<KvPair> RebuildList(object extendData) //extendedData is xml 
    { 
    List<KvPair> source = new List<KvPair> 
    { 
     new KvPair {Key = null, Value = "Null"}, 
     new KvPair {Key = 0, Value = "No"}, 
     new KvPair {Key = 1, Value = "Yes"}  
    }; 
    List<int> target = new List<int>(); 
    var data = XDocument.Parse(extendData.ToString()).Descendants("elem"); 
    int tempVal; 

    foreach (var elem in data) 
    { 
     var key = Int32.TryParse(elem.Attribute("Value").Value, 
      out tempVal) ? tempVal : null; 
     target.Add(key) 
    } 
    source.RemoveAll(x => !target.Contains(x)); 

    return new List<KvPair>(source); 
} 

回答

0

您更好地实现自己的类将与列表下工作,但你会实现自己的Add方法,在那里你会刷新你的列表,你在添加之前希望。