我想比较一个字符串集合并返回相等的部分,直到出现不相等的部分。 (并删除traling空格)。比较字符串是否相等
例如:
List<string> strList = new List<string>
{
"string xyz stop",
"string abc stop",
"string qrt stop"
};
string result = GetEqualName(strList); // This should return "string"
我提出了以下方法,工程
string GetEqualName(IEnumerable<string> strList)
{
string outString = "";
bool firstTime = true;
foreach (var subString in strList)
{
if (firstTime)
{
outString = subString;
firstTime = false;
}
else
{
string stringBuilder = "";
for (int i = 0; i < outString.Count(); i++)
{
if (outString[i] == subString[i])
stringBuilder = stringBuilder + outString[i];
else
break;
}
outString = stringBuilder;
}
}
outString = outString.TrimEnd(' '); // Remove traling whitespace
return outString;
}
我只是觉得这是一件可以在几行来,我矫枉过正。你们有什么建议吗?
你的例子似乎是比较三个字符串,而不是你说的两个字符串。 –
我不知道任何内置函数会将其减少到几行(Linq聚合的“巧妙”使用除外)。如果你的方法有效(并且你理解_why_它有效),那么我没有看到改变它的强制理由。 –
“subString”可能是错误的单词使用。它是集合中的一个字符串。 – Daltons