我想比較一個字符串集合並返回相等的部分,直到出現不相等的部分。 (並刪除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