我正在尝试创建一个字符串,下面是我想要实现的东西:
String first = "Previous.value1 | Previous.value2";
String second = "New.value1| New.value2";
我正在尝试创建这样的最终字符串:
string final ="generate Previous.value1 cross New.value1 ? Previous.value1 cross New.value2";
但问题是指我不匹配的情况如下:
String first = "Previous.value1 | Previous.value2";
String second = "New.value1";
然后我想要这样,因为我在第二个变量中没有 Previous.Value2 的匹配值:
string final ="generate Previous.value1 cross New.value1";
到目前为止,当我在字符串中有相同的值计数时,我成功地生成了最终字符串。
string final = "generate";
if (first.Split('|').Count() - second.Split('|').Count() == 0)
{
int i = 0;
foreach (var item in first.Split('|').Count())
{
if (i == 0)
final = final + item + " cross " + second.Split('|')[i];
else
final = final + " ? " + item + " cross " + second.Split('|')[index];
i++;
}
}
答案 0 :(得分:3)
尝试此LINQ查询(使用the Zip
extension method):
var zippedQry = first.Split('|').Zip(second.Split('|'),
(f, s) => f.Trim() + " cross " + s.Trim());
string final = "generate " + String.Join(" ? ", zippedQry.ToArray());
答案 1 :(得分:1)
为了保持你使用的风格,我建议首先分割两个字符串
String first = "Previous.value1 | Previous.value2";
String second = "New.value1 | New.value2";
string final = "generate ";
string[] first_values = first.Split('|');
string[] second_values = second.Split('|');
然后你可以在最短的阵列上定位自己。如果您second_values
first_values
的相应值不足,则只收集相应的值// run until the length of the shortest one
for (int i = 0; i < Math.Min(first_values.Length, second_values.Length); i++)
{
// bild the normal cross-version for the first position
string sentence = first_values[i] + " cross " + second_values[i];
// if on first position use normal version otherwise put a ? infront of it
final += i == 0 ? sentence : " ? " + sentence;
}
。使用正常的for循环:
String first = "Previous.value1 | Previous.value2 | Previous.value3 | Previous.value4";
String second = "New.value1 | New.value2 | New.value3";
这个循环也应该像这样处理字符串:
[HttpPost]
public void EditProperty()
{
var isFeatured = HttpContext.Request.Form["isFeatured"];
var files = HttpContext.Request.Form.Files;
foreach (var file in files)
{
if (file.Length > 0)
{
System.Console.WriteLine(file.FileName);
System.Console.WriteLine("This file is featured:" + isFeatured.ToString());
}
}
}