0

我想在.SelectMany(). 我有一个Object,其中包含一个Dictionary<String,FileInfo>. 对于这些字典中的每个元素,我希望将 Key 放入 String.Format(),但我总是将"System.Linq.Enumerable+<SelectManyIterator>d__142[System.String,System.Char]"其作为返回值。

我的错在哪里?

String.Format(
    "All Strings : {0} on {1} ", 
    MyObject.MyDictionary.Keys.SelectMany(x => x), 
    MyObject.Type);
4

3 回答 3

2

框架 3.5

 String.Format(
        "All Strings : {0} on {1} ", 
        string.Join(string.Empty, MyObject.MyDictionary.Keys.SelectMany(x => x).ToArray()),  
        MyObject.Type);

框架 4

 String.Format(
        "All Strings : {0} on {1} ", 
        string.Join(string.Empty, MyObject.MyDictionary.Keys.SelectMany(x => x)),  
        MyObject.Type);
于 2012-07-30T12:40:14.050 回答
2

SelectMany 将返回一个 IEnumerable,这就是为什么您需要将键放入字符串中,如下所示:

String.Format("All Strings : {0} on {1}",
     String.Join(", ", MyObject.MyDictionary.Select(x => x.Key)),
     MyObject.Type);
于 2012-07-30T12:41:06.233 回答
0

非常感谢大家,我现在用这种方式解决了它:

String.Format("All Strings : {0} on {1} ", String.Join("; ",MyObject.MyDictionary.Keys), MyObject.Type);
于 2012-07-30T13:30:24.523 回答