Почему делает мою попытку обрезать строки в Списке <строка> не, кажется, работают?

Задайте его как параметр :

Parameters [Forms]![ExampleForm]![dateText] DateTime;
Select * From YourTable
Where [YourDateField] = [Forms]![ExampleForm]![dateText]
5
задан rohancragg 15 October 2008 в 16:00
поделиться

7 ответов

Строка. Обрезка () метод возвращает строку, представляющую обновленную строку. Это не обновляет сам строковый объект, а скорее создает новый.

Вы могли сделать это:

s = s.Trim();

Однако Вы не можете обновить набор при перечислении через него так, Вы хотели бы или заполнить новый Список при перечислении по существующему или заполнить Список вручную с помощью массива строк, возвращенного Строкой. Разделение.

Заполнение нового списка:

List<string> temp = new List<string>("a, b".Split(",".ToCharArray()));
List<string> listFromSplit = new List<string>();

temp.ForEach(delegate(string s) 
{ 
    listFromSplit.Add(s.Trim()); 
});

listFromSplit.Dump();

Заполнение вручную:

string[] temp = "a, b".Split(",".ToCharArray());
List<string> listFromSplit = new List<string>();

foreach (string s in temp)
{
    listFromSplit.Add(s.Trim()); 
};

listFromSplit.Dump();
10
ответ дан 18 December 2019 в 05:29
поделиться

В дополнение к ответу, отправленному Adrian Kuhn, Вы могли сделать следующее:

var result = listFromSplit.Select(s => s.Trim());
4
ответ дан 18 December 2019 в 05:29
поделиться

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

var s = "  asd   ";
s.Trim();

не обновит s, в то время как..

var s = "   asd   ";
s = s.Trim();

будет..

var listFromSplit = "a, b".Split(',').Select(s=>s.Trim());

я предполагаю, был бы то, как я пойду об этом.

17
ответ дан 18 December 2019 в 05:29
поделиться

Строковые экземпляры неизменны. Что-либо, что, кажется, изменяет один, создает новый экземпляр вместо этого.

2
ответ дан 18 December 2019 в 05:29
поделиться

Вы ничему не присваиваете обрезанный результат. Это - классическая ошибка, я только что вышел из привычки к деланию этой ошибки со строкой. Замена :)

1
ответ дан 18 December 2019 в 05:29
поделиться

У меня нет IDE и выполнения, но это должно получить сделанное задание (если я не ошибаюсь):

var result = from each in listFromSplit select each.Trim();
1
ответ дан 18 December 2019 в 05:29
поделиться

Разделение и на пробелах и на запятых и удаляет любые пустые записи. Все хорошие и обрезанные. Предполагает, что Ваши строки не содержат пробелы, все же.

List<string> listFromSplit =
     new List<string>( "a , b ".Split( new char[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries ));
0
ответ дан 18 December 2019 в 05:29
поделиться
Другие вопросы по тегам:

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