0

の助けを借りて、文字列を 1 行に設定したいと考えています.SelectMany()。をObject保持する がありDictionary<String,FileInfo>ます。これらのディクショナリの各要素について、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

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 に答える
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 に答える
0

すべてに感謝します、私は今その方法でそれを解決しました:

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