ComboBox来排序Xml文件。需要帮助来优化

时间:2010-01-04 21:55:39

标签: c# xml optimization

我写了一个方法来对ComboBox的值进行排序,然后将它们保存到Xml文件中。

我很不高兴看起来如何。请随意将它拆开并帮助我优化它。

该方法与此非常相似:

public void Save(ComboBox comboBoxItems)
{
    var xmlElements = new XElement("Root");
    List<string> children = new List<string> {comboBoxItems.Text};
    foreach (string child in comboBoxItems.Items)
        if (!children.Contains(child))
            children.Add(child);

    children.Sort();

    foreach (var child in children)
        xmlElements.Add(new XElement("Child", child));

    xmlElements.Save("Output.xml");
}

2 个答案:

答案 0 :(得分:2)

怎么样:

public static void Save(ComboBox items) {
  XElement xmlElements = new XElement("Root");
  xmlElements.Add(
    items.Items
      .Cast<string>()
      .OrderBy(s => s)
      .Select(s => new XElement("Child", s))
      .ToArray()
  );
  xmlElements.Save("Output.xml");
}

答案 1 :(得分:1)

你的并不是那么糟糕。这个版本对眼睛有点好看

// you might need comboBoxItems.Items.OfType<string>()
// doing this by memory lol    
var children = from x in comboBoxItems.Items
                orderby x
                select new XElement("Child", child);
var xmlElements = new XElement("Root", children.ToArray());
xmlElements.Save("output.xml");

这绝不会成为性能瓶颈(确切地说你在组合框中有多少项目),因此我不担心“性能”,除非它特别成为瓶颈。 / p>