Есть ли эквивалент String.Split, который возвращает общий список?

Оператор == проверяет, указывают ли две ссылки на один и тот же объект или нет. .equals() проверьте фактическое содержимое строки (значение).

Обратите внимание, что метод .equals() принадлежит классу Object (суперкласс всех классов). Вам необходимо переопределить его в соответствии с вашим требованием к классу, но для String оно уже реализовано и проверяет, имеет ли две строки одно и то же значение.

  • Случай 1
    String s1 = "Stack Overflow";
    String s2 = "Stack Overflow";
    s1 == s2;      //true
    s1.equals(s2); //true
    
    Причина: строка литералы, созданные без нуля, хранятся в пуле строк в области перментонов кучи. Таким образом, оба s1 и s2 указывают на один и тот же объект в пуле.
  • Случай 2
    String s1 = new String("Stack Overflow");
    String s2 = new String("Stack Overflow");
    s1 == s2;      //false
    s1.equals(s2); //true
    
    Причина. Если вы создаете объект String с использованием ключевого слова new, ему выделяется отдельное пространство в куче.
13
задан Herb Caudill 14 October 2008 в 15:23
поделиться

6 ответов

Если Вы не хотите использовать LINQ, можно сделать:

Dim foo As String = "a,b,c,d,e"
Dim boo As New List(Of String)(foo.Split(","c))
33
ответ дан Bob King 14 October 2008 в 15:23
поделиться

Можно использовать конструктора Списка.

String foo = "a,b,c,d,e";
List<String> boo = new List<String>(foo.Split(","));
7
ответ дан Mats Fredriksson 14 October 2008 в 15:23
поделиться
  • 1
    Были некоторые синтаксические ошибки в Вашем решении (запятая прежде ОТ и ясное объявление СОЕДИНЕНИЯ на определенных полях). Я только отмечаю их кем-то еще, который сталкивается с этой проблемой, ища решение. Любезно посмотрите вышеупомянутый пересмотр моей дилеммы выше. Ваш совет дал мне решение. – dwlamb 9 February 2014 в 20:56

При использовании Linq можно использовать ToList () дополнительный метод

Dim strings As List<string> = string_variable.Split().ToList<string>();
0
ответ дан IAmCodeMonkey 14 October 2008 в 15:23
поделиться
  • 1
    Пост-ГРЭС не поддерживает JOIN с при проведении DELETE запрос . Ерунда, это делает, хотя синтаксис является странным. DELETE FROM ... USING .... См. руководство. Однако это doesn' t поддержка, лево-присоединяющаяся против таблицы, которая будет удалена из, that' s верный. – Craig Ringer 10 February 2014 в 00:29

Сделайте Вас, действительно нуждаются в List< T> или будет IList< T> делают? Поскольку строка [] уже реализует последнего... просто другая причина, почему это стоит запрограммировать к интерфейсам, где Вы можете. (Могло случиться так, что в этом случае Вы действительно не можете по общему признанию.)

6
ответ дан Jon Skeet 14 October 2008 в 15:23
поделиться
  • 1
    Я попытался исправить свои синтаксические ошибки. – bf2020 9 February 2014 в 21:57

Самый легкий метод, вероятно, был бы методом AddRange.

Dim Foo as String = "a,b,c,d,e"
Dim Boo as List(of String)

Boo.AddRange(Foo.Split(","c))
4
ответ дан amcoder 14 October 2008 в 15:23
поделиться
  • 1
    Для PostgreSQL присоединенный удаляет, сделан с DELETE FROM ... USING ..., но there' s в настоящее время никакой способ выразить left outer join против удалить целевой таблицы AFAIK. – Craig Ringer 10 February 2014 в 00:29

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

var values = labels.Split(" "[0]).ToList<string>();
0
ответ дан mattruma 14 October 2008 в 15:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: