我希望通过提出这个问题,我找到一种更有效的方法来做我想做的事情。
首先,我有一个函数,其参数如下所示:
private void exampleVoid(string filePath, params string[] sourceFile) {
// Code ...
}
我对exampleVoid
的电话如下:
exampleVoid(@"C:\test.txt",
"Some Data",
"Some More Data",
"Even more data");
在某些情况下,可能必须删除数组中的第二个字符串(标记为“更多数据”),并且不传递给exampleVoid()
方法。那么,是否有一些方法可以从阵列中删除此字符串?请记住,将字符串输出为null将不起作用,因为将抛出异常。
感谢您阅读,以及任何进一步的帮助。
埃文
答案 0 :(得分:5)
您无法从阵列中删除字符串。创建一个包含除要包含的项目之外的所有其他项目的新阵列是您唯一的选择。代码很简单:
// Filters out the second item (zero-based index 1)
sourceFile = sourceFile.Where((s, i) => i != 1).ToArray();
答案 1 :(得分:0)
我不确定我是否理解你的问题...... 话虽如此,你可以试试这个:
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);