我有一个输入string
作为“ thisIsMyNameNishant”,我希望输出为
“ this_Is_My_Name_Nishant”。我想使用Lambda表达式解决此问题。
我使用lambda表达式编写了以下代码,但没有得到正确的输出。
string str = "thisIsMyNameNishant";
List<char> newlist = str.ToList();
IEnumerable<string> queryvalue = newlist.Select((x, y) =>
{
if (x.ToString().ToUpper() == y.ToString().ToUpper())
{
return "_" + y.ToString();
}
else
{
return y.ToString();
}
});
foreach (string c in queryvalue)
{
Console.Write(Convert.ToString(c));
}
Console.ReadLine();
答案 0 :(得分:1)
您首先可以在不使用lambda的情况下进行尝试:
string result = "";
for ( int index = 0; index < str.Length; index++ )
{
if (char.IsUpper(str[index]) && index != 0)
result += '_';
result += str[index];
}
Console.Write(result);
答案 1 :(得分:0)
这是我使用lambda编写的代码
string str = "thisIsMyNameNishant";
var queryvalue = str.Select(x =>
{
if (char.IsUpper(x))
return "_" + x.ToString();
else
return x.ToString();
});
foreach (string c in queryvalue)
{
Console.Write(Convert.ToString(c));
}
当我阅读“选择”的定义时,我就很清楚了。