2015-11-04 4 views
-1

Есть ли способ сделать это одним лайнером?Создать строку из диапазона чисел

List<string> ids = new List<string>(result.Count); 
for(int i = 0; i < result.Count; i++) 
    ids.Add(i.ToString()); 
string reportIds = String.Join(",", ids); 

Я уверен, что есть способ с помощью LINQ, но я не могу понять,

+0

Почему не 'строка reportIds = string.join ("", результат);'? – haim770

+1

установить resharper, он всегда находит способ сделать вещи 1 строку: D – mikus

+1

просто убедитесь, что вы не хотели спрашивать об ids.Add (результат [i] .ToString()); Тогда все ответы неверны, так как были ваши вопросы: P – mikus

ответ

5

string.Join() фактически принимает IEnumerable<object> в одном из своих перегрузок, поэтому нет никакой необходимости позвоните по телефону ToString(). Вот полный один вкладыш с использованием Enumerable.Range():

var reportIds = string.Join(",", Enumerable.Range(0, result.Count)); 
+0

Любите свой ответ больше. Я присоска для 1 лайнеров,> D – CJLopez

4
string reportIds = String.Join(",",Enumerable.Range(0, result.Count)); 
+0

СПАСИБО ВАМ! – CJLopez

2
string str = String.Join(",", Enumerable.Range(0, count).Select(n => n.ToString())); 
+0

Забыл о 'Enumerable.Range', спасибо, использовал ReSharper для таких советов, но мне не разрешено устанавливать его – CJLopez

Смежные вопросы