2016-08-11 33 views
2

に「文字列」から変換できません。 index list、commonの値を持つlinesOfContentを追加したいと思います。その間に別の文字列":"を追加します。は、私は、文字列中で</li> </ol> <p>を2つのリスト</p> <ol> <li>ネストされた文字列のリスト、および</li> <li>リストを持っている「system.collections.generic.list文字列」

私はコードを書いていますが、「文字列 'から' system.collections.generic.list string 'に変換できません」という問題に直面しています。これを解決する方法。

int common = 10; 
List<List<string>> index = new List<List<string>>(); 
List<int> linesOfContent = new List<int>(); 
for(int i = 0; i < 5; i++) 
{ 
     for(int j = 0; j < 5; j++) 
     {  
      linesOfContent.Add(i+":"+common); 
     } 
     index.Add(linesOfContent); 
} 

予想される出力:

index[0][0] = 0:10 
index[0][1] = 1:10 
index[0][2] = 2:10 

... ...

+0

あなたはインデックス ''リスト内の期待される結果を表示することができますか? – user3185569

+0

@ shad0wk結果を期待どおり出力したい。 –

答えて

2

ListintListsstringListsがない含まれている必要があります。

int common = 10; 
List<List<string>> index = new List<List<string>>(); 
List<string> linesOfContent = new List<string>(); 
for(int i = 0; i < 5; i++) 
{ 
    for(int j = 0; j < 5; j++) 
    {  
     linesOfContent.Add(i.ToString() +":"+common.ToString()); 
    } 
    index.Add(linesOfContent); 
} 
1

各項目、あなたのindexリストでList<string>です。アイテムを追加しようとすると、それがリストである必要があります。ただし、文字列を追加しようとしています。linesOfContent+":"+commonは文字列と見なされます。

ソリューション:

のLINQのSelect法(別名プロジェクション)シーケンス内の各要素を変換するために使用することができます。

index.Add(linesOfContent.Select(x=> x.ToString() + ":" + common).ToList()); 

が道あなたがあなたのループの結果を構築していることに注意してくださいいくつかの重複レコード。文字列のLists

0

ここでは、コードではなく、それがEnumerable.Rangeを使用して、foreach文なし、です:

linesOfContent.AddRange(Enumerable.Range(0, 5).Select(i => i.ToString() + ":" + common.ToString()).ToArray()); 
index.Add(linesOfContent); 
関連する問題