0

我有这样的刺痛:

string searches = "my test";

然后我可以将它们分解成单独的术语,如下所示:

string[] split = searches.Split(new Char[] { ' ' });

这给了我:

[0] = "my"
[1] = "test"

有什么快速的方法可以做到以下几点:

[0] = "my"
[1] = "test"
[2] = "my:"
[3] = "test:"
[4] = "my,"
[5] = "test,"

我需要将搜索词加倍并将“:”附加到加倍集的末尾。最简单有效的方法是什么?

4

2 回答 2

1

一种方法是快速而肮脏的 LINQ。如果你有很多东西要附加,你可以利用一个你想要附加的数组和一个可靠的 FOR 循环。

string[] stuffToAppend = new String[]{ ":", "," };

string[] split = searches.Split(new Char[] { ' ' });
List<String> newStrings = new List<String>(split);
foreach( String append in stuffToAppend )
    newStrings.AddRange( split.Select( s => s + append ) );

如果您确实需要一个数组,您现在可以通过 newStrings.ToArray() 获取新数组。

于 2012-11-06T00:51:05.537 回答
0

一种简单的方法是使用联合:

            string searches = "my test";
            var split = searches.Split(new Char[] { ' ' });
            var modifiedArray1 = split.Select(x => x + ":");
            var modifiedArray2 = split.Select(x => x + ",");
            split = split.Union(modifiedArray1).ToArray().Union(modifiedArray2).ToArray();
            foreach (var s in split)
            {
                Console.WriteLine(s);
            }
于 2012-11-06T00:53:57.900 回答