разделение строки из элементов listbox

#c# #listbox

#c# #listbox

Вопрос:

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

 foreach (ListItem item in lstboxColumnList.Items)
            {

                column_name = temp   "" " item """;
                temp = column_name   ","   Environment.NewLine;
            }
  

как я мог бы получить разделенную строку

Комментарии:

1. Эээ, String.Split ?

Ответ №1:

Предполагая, что первое слово заканчивается пробелом, вы можете использовать что-то вроде приведенного ниже:

 string firsWord = sentence.SubString(0, sentence.IndexOf(' '));
string remainingSentence = sentence.SubString(sentence.IndexOf(' '), sentence.Length);
  

Ответ №2:

Я не знаю формат вашего элемента listbox .. но я предположил, что ваш элемент listbox содержит как минимум 2 слова и разделяется пробелом .. таким образом, вы можете выполнить разделение, используя substring и index of ..

 string first = sentence.SubString(0, sentence.IndexOf(" "));
string second = sentence.SubString(sentence.IndexOf(" ")   1);
  

Ответ №3:

     public void Test()
    {
        List<string> source = new List<string> {
            "key1 some data",
            "key2 some more data",
            "key3 yada..."};
        Dictionary<string, string> resultDictionary = source.ToDictionary(n => n.Split(' ').First, n => n.Substring(n.IndexOf(' ')));
        List<string> resultStrings = source.Select(n => string.Format(""{0}",{1}", n.Split(' ').First, n.Substring(n.IndexOf(' ')))).ToList;
    }
  

resultDictionary — это словарь с ключом, установленным для первого слова каждой строки в исходном списке.

Второй вариант ближе соответствует требованиям вашего вопроса, заключающимся в том, что он выводит список строк в указанном вами формате.

РЕДАКТИРОВАТЬ: Извинения, впервые опубликовано в VB.

Ответ №4:

Оформить покупку:

  var parts = lstboxColumnList.Items.OfType<ListItem>().Select(i => new { 
                          Part1 = i.Text.Split(' ').FirstOrDefault(),
                          Part2 = i.Text.Substring(i.Text.IndexOf(' '))
                       });

 foreach (var part in parts)
 {
     var p1 = part.Part1;
     var p2 = part.Part2;

     // TODO: use p1, p2 in magic code!!
 }