2015-04-16 6 views
0

Я хочу сохранить все контрольные значения списка в строке с разделом «,», чтобы я мог показать ее в метке. Я использую для цикла, но дает ошибкуКак сохранить значения списка в строковой переменной в C#

for (int i = 0; i < ListBox2.Items.Count; i++){ 

     if (ListBox2.Items[i].Selected == true || ListBox2.Items.Count > 0){ 
      string projectnames += ListBox2.Items[i].ToString(); 
     } 
    } 
+2

Какая ошибка _exactly_? –

+1

Почему вы проверяете '|| ListBox2.Items.Count> 0'? Это не имеет большого значения, не так ли? –

+0

ii просто хочу добавить элементы из левого списка в правый список. если я не буду давать это условие, мне нужно выбрать нужные элементы в поле, в то время как ubmiting в противном случае это wil nt принимает –

ответ

3
string projectnames = ""; 
bool firstValue = true; 

for (int i = 0; i < ListBox2.Items.Count; i++) 
      { 

       if (ListBox2.Items[i].Selected == true || ListBox2.Items.Count > 0) 
       { 
        if(!firstValue) 
        { 
         projectnames += ", " + ListBox2.Items[i].ToString(); 
        } 
        else 
        { 
         projectnames += ListBox2.Items[i].ToString(); 
         firstValue = false; 
        } 

       } 

      } 
+0

hey hero, nice coding ... ur true coder –

0

Вместо цикла я хотел бы использовать LINQ + String.Join:

var selected = ListBox2.Items.Cast<ListItem>() 
    .Where(li => li.Selected) 
    .Select(li => li.ToString()); 
string projectnames = String.Join(",", selected); 

На этом пути он гораздо лучше читать и вам не нужно уход за запятыми.

0

Это приведет к созданию последовательности всех выбранных элементов в списке.

string projectnames = ""; 
for (int i = 0; i < ListBox2.Items.Count; i++) 
{ 

    if (ListBox2.Items[i].Selected) 
    { 
     projectnames += ListBox2.Items[i].ToString() + ", "; 
    } 

} 
+0

благодаря его работе для me –

0

Наиболее емким метод, который я могу думать:

var label = string.Join(",", listBox2.Items.Cast<string>()); 

(Это использует System.Linq)

0

Попробуйте это поможет вам!

protected void btnSave_Click(object sender, EventArgs e) 
    { 
     string selectedItem=string.Empty; 
     if (ListBox1.Items.Count > 0) 
     { 
      for (int i = 0; i < ListBox1.Items.Count; i++) 
      { 
       if (ListBox1.Items[i].Selected) 
       { 
        selectedItem += ListBox1.Items[i].Text.ToString() + ", "; 
        //insert command 
       } 
      } 
     } 
    } 
Смежные вопросы