2012-12-09 56 views
3

我的初始化:C#KeyValuePair <string, int>列表 - <string>不保留的int值

List<string> convertedList = new List<string>(); 
List<KeyValuePair<string, int>> originalList = new List<KeyValuePair<string, int>>(); 

我基本上要填充在originalList
所以convertedList的字符串值,如果originalList有一些项目:["foo",5],["bar",16],["baz",100]
我想convertedList包含:["foo"],["bar"],["baz"]
到目前为止我试过了:

for (int i = 0; i <= originalList.Count; i++) 
{ 
    convertedList.Add(actions.ToString()); 
} 

但没有运气。
哦,请记住我是新手,对此的回答可能非常明显。
感谢您的帮助!
如果我只想转换第一个X项目,我该如何继续?

+0

使用采取(N)。例如:convertedList.AddRange(originalList.Take(7).Select(x => x.Key))并且不要依赖于它再次调用您的问题,以防万一我现在看到它。 – Harry

回答

6
List<String> convertedList = originalList.Select(x => x.Key).ToList(); 

或者:

convertedList.AddRange(originalList.Select(x => x.Key)); 
+2

如果你想附加,而不是做一个新的列表使用可以使用'convertedList.AddRange(originalList.Select(kvp => kvp.Key));' –

+0

+1 for LINQ替代 – John

+0

@Scott,我们明显改变了我们的答案完全相同的第二个:-) 正确的评论。 – Harry

1

坚持原来的语法:

foreach (KeyValuePair<string, int> kvp in originalList) 
{ 
    convertedList.Add(kvp.Key); 
} 
相关问题