shaprpuff Ответов: 2

Как получить значения из элементов списка?


У меня есть четыре списка ящиков с множественным выбором.

список a, b, c, d;

я получаю его значения по нижеприведенному коду.

string a = String.Join(",", listA.Items.OfType<ListItem>().Where(r => r.Selected).Select(r => r.Text));

string b = String.Join(",", listB.Items.OfType<ListItem>().Where(r => r.Selected).Select(r => r.Text));

string c = String.Join(",", listC.Items.OfType<ListItem>().Where(r => r.Selected).Select(r => r.Text));

string d = String.Join(",", listD.Items.OfType<ListItem>().Where(r => r.Selected).Select(r => r.Text));


string values=a+b+c+d;


Мой вопрос заключается в том, что когда я выбираю значения, это приводит к такому результату.

,b, c, d или
a,, c, d или
А, Б,в,

Мне нужен такой результат, как

b,c, d или
А,С,D
А, Б,в

Есть бесполезные запятые, как мы их убираем.

Что я уже пробовал:

<pre lang="C#">

string a = String.Join(&quot;,&quot;, listA.Items.OfType&lt;ListItem&gt;().Where(r =&gt; r.Selected).Select(r =&gt; r.Text));

string b = String.Join(&quot;,&quot;, listB.Items.OfType&lt;ListItem&gt;().Where(r =&gt; r.Selected).Select(r =&gt; r.Text));

string c = String.Join(&quot;,&quot;, listC.Items.OfType&lt;ListItem&gt;().Where(r =&gt; r.Selected).Select(r =&gt; r.Text));

string d = String.Join(&quot;,&quot;, listD.Items.OfType&lt;ListItem&gt;().Where(r =&gt; r.Selected).Select(r =&gt; r.Text));


string values=a+b+c+d;

</pre>

Suvendu Shekhar Giri

Итак, ваш вопрос: "Как удалить конечную запятую в строке?"?

shaprpuff

да

Suvendu Shekhar Giri

Пожалуйста, проверьте решение, если оно поможет, в противном случае дайте мне знать.

F-ES Sitecore

Помимо использования TrimEnd, вы также можете использовать команду linq "Aggregate", а не Join, которая должна избегать запятых в первую очередь. Например, Google "c# linq aggregate".

2 Ответов

Рейтинг:
2

Suvendu Shekhar Giri

Вы можете использовать Строка.Метод TrimEnd [^]

Что-то вроде -

values = values.TrimEnd(',');


Надеюсь, это поможет :)


Рейтинг:
1

Karthik_Mahalingam

попробовать это

string a = String.Join(",", listA.Items.OfType<ListItem>().Where(r => r.Selected && !string.IsNullOrWhiteSpace(r.Text)).Select(r => r.Text));