如何使用LINQ
在“\”和/或“/”上拆分以下字符串我说和/或用于“\”和“/”,因为在我的文件路径中,我可能最终只能获得正斜杠,仅反斜杠或两者兼而有之。
"temp\\SimpleRec/bin/Debug/Geming.SimpleRec.vshost.exe"
"temp\\SimpleRec\\bin\\Debug\\Geming.SimpleRec.vshost.exe"
"temp/SimpleRec/bin/Debug/Geming.SimpleRec.vshost.exe"
由于
答案 0 :(得分:1)
你不需要LINQ:
string[] values = myString.Split(new []{'\\', '/'});
为这样的任务引入LINQ只会增加复杂性并降低可读性。
答案 1 :(得分:1)
有时,我认为LINQ试图用于所有事情,当它没有。
string[] data = myString.Split(new Char[]{'\\', '/'});
答案 2 :(得分:1)
这里不需要使用LinQ,默认的Split()方法可以完成这项工作:
var path = "temp\\SimpleRec/bin/Debug/Geming.SimpleRec.vshost.exe"
var parts = path.Split(new[] { '/', '\\' });
希望这有帮助!
答案 3 :(得分:1)
String.Split()
似乎是最好的选择,但只是为了好玩,它也可以与LINQ一起使用。
Split
)。请参阅InternalAdd()
方法。我采用了头部和尾部的功能性方法。使用.Take()
将字符串分割为头部和尾部,并返回头部+为尾部调用相同函数的递归结果。
下面是一个字符分隔符的示例代码(当分隔符越来越长时,事情变得越来越复杂):
private IEnumerable<string> BreakString(string source)
{
var delimiter = '/';
var head = source.TakeWhile(c => c != delimiter);
if (!head.Any())
{
yield break;
}
var tail = source.SkipWhile(c => c != delimiter)
.Skip(1);
yield return String.Join("", head);
foreach (var t in BreakString(String.Join("", tail)))
{
yield return t;
}
}
// usage
from s in BreakString(source)
您还可以通过String.Join()
tail.Aggregate(new StringBuilder(), (sb, c) => sb.Append(c)).ToString();
答案 4 :(得分:1)
您可以通过以下方式使用LINQ进行拆分:
var list=from item in str.Split(new string[] { "\\","/" }, StringSplitOptions.None)
select item;
答案 5 :(得分:0)
不需要LINQ,只需执行此操作:
var path = @"temp\\SimpleRec/bin/Debug/Geming.SimpleRec.vshost.exe";
var split = path.Split(new [] { '/', '\\' }, StringSplitOptions.RemoveEmptyEntries);