C # Добавление данных или удаление данных из массива строк - PullRequest
0 голосов
/ 25 июля 2011

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

Для начала у меня есть функция, параметры которой выглядят следующим образом:

private void exampleVoid(string filePath, params string[] sourceFile) {

// Code ...

}

** Примечание: я передаю параметры 'sourceFile' в метод CodeDom. Этот метод выдает ошибку, если какой-либо из параметров имеет значение null. **

Мой звонок на exampleVoid выглядит следующим образом:

exampleVoid(@"C:\test.txt",
"Some Data",
"Some More Data",
"Even more data");

При определенных обстоятельствах вторую строку в массиве (с пометкой «Некоторые дополнительные данные»), возможно, придется удалить и не передать в метод exampleVoid(). Итак, есть ли какой-нибудь способ полного удаления этой строки из массива? Имейте в виду, что обнуление строки не будет работать, так как будет выдано исключение.

Спасибо за чтение, а также за любую дополнительную помощь.

Evan

Ответы [ 2 ]

5 голосов
/ 25 июля 2011

Вы не можете удалить строку из массива.Создание нового массива, который включает в себя все остальные элементы, кроме того, который вы хотите включить, является вашей единственной возможностью.Код достаточно прост:

// Filters out the second item (zero-based index 1)
sourceFile = sourceFile.Where((s, i) => i != 1).ToArray();
0 голосов
/ 25 июля 2011

Я не уверен, что понимаю ваш вопрос ... Сказав это, вы можете попробовать это:

string[] sourceFile;
if(condition)
    sourceFile = new []{"Some Data","Even more data"};
else
    sourceFile = new []{"Some Data","Some More Data","Even more data"};

exampleVoid(@"C:\test.txt", sourceFile);
...