有没有办法用一个表达式替换第二行和第三行?
double oddOrEven = 1231713.0;
string myString = oddOrEven.ToString();
if (myString[myString.Length - 3] == '7')
Console.WriteLine("The third digit is a 7");
我没有创建一个新的字符串变量并使用它来检查IF,而是想做这样的事情:
double oddOrEven = 1231713.0;
if (oddOrEven[oddOrEven.Length - 3].ToString() == '7')
Console.WriteLine("The third digit is a 7");
我意识到它不会工作,但有没有办法安排它,所以我可以获得我想要的相同效果,而无需创建和使用新变量? 也许我不应该使用ToString? 谢谢!
答案 0 :(得分:2)
如果您不想使用字符串,可以这样做:
if (Math.Truncate((oddOrEven / 100)) % 10 == 7)
Console.WriteLine("The third digit is a 7");
答案 1 :(得分:1)
这应该有效
if (oddOrEven.ToString()[oddOrEven.ToString().Length - 3] == '7')
Console.WriteLine("The third digit is a 7");
然而,它可能效率不高,因为ToString()被调用两次。 此外,代码变得不那么容易阅读,但只要它有效,并且你知道后果,这取决于你:)
答案 2 :(得分:1)
Linq版
if (oddOrEven.ToString().Reverse().ToArray()[2] == '7')
Console.WriteLine("The third digit is a 7");