我写了一个方法来对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");
}
答案 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>