向列表添加字符串 - 更快的方法?

3

有没有比下面的例子更快或更有效地将字符串添加到列表中的方法?:

List<String> apptList = new List<String>();

foreach (Appointment appointment in appointments){

    String subject = appointment.Subject;
    //...(continues for another 10 lines)

    //...And then manually adding each String to the List:   
    apptList.Add(subject);
    //...(continues for another 10 lines)

    //And then send off List apptList to another method
}

“//...(继续另外10行)”是什么意思?你是否有其他10个字段,其中包含“String fieldname = appointment.FieldName;”? - yoozer8
3个回答

6
var apptList = appointments.Select(a => a.Subject).ToList();

谢谢Keith。我对“appointments.Select(a => a.Subject)”这部分有点困惑。这是否意味着foreach语句现在已经多余了,因为它引用了“appointments”而不是每个“appointment”,或者我错了?此外,“a => a.Subject”是什么意思,我以前没有遇到过。谢谢。 - LKB
基本上意味着对于约会中的每个项目,选择主题,然后将其转换为列表。因此,您最终会得到一个字符串列表,其中包含所有约会主题。这是使用Linq完成的。如果您还没有看过Linq,那么它非常棒!值得花时间去研究。它可以做比这更多的事情。 - Keith Nicholas
哦,是的,意味着使用foreach创建主题列表是多余的。 - Keith Nicholas
Linq to XML很好,而且与XPath结合起来潜力巨大。 - Keith Nicholas
让我们在聊天中继续这个讨论:http://chat.stackoverflow.com/rooms/30871/discussion-between-keith-nicholas-and-lbran - Keith Nicholas
显示剩余3条评论

2

apptList = appointment.Subject.ToList(); - 出现错误信息,无法隐式转换 char 类型为 String。我做错了什么? :/ - LKB
需要查看代码。如果您需要从字符数组创建字符串,则可以使用以下代码:string newString = new string(charArray)。如果您想将字符列表转换为字符串,则可以使用以下代码:newString = new string(charList.ToArray())。 - user2434792
我觉得很奇怪,因为Subject是String类型,不知道'char'从哪里来的... - LKB

1
这个怎么样?
List<string> apptList = appointments.Select(x => x.Subject).ToList();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接