我发现的简单任务非常困难。
Console.Write("[" + CurrentTime + "] Name a day of the week? ");
string vDay = Console.ReadLine();
if (vDay != "Monday" || "Tuesday" || "Wednesday" || "Thursday" || "Friday")
{
Console.WriteLine("that is not a valid day of the week");
}
当我使用时口渴!=它给我一个错误说"不能应用于bool和string"没有!=而只是=我得到"字符串和字符串"
基本上我要做的就是如果有人打字"你好"例如,它会说这不是一周中的有效日期。
这么简单的任务,但我发现它很难,谢谢你的帮助。
答案 0 :(得分:7)
可能更清洁,有类似的东西:
List<string> list = new List<string> { "Monday", "Tuesday", "Wednesday", "Thursday", ... };
if (!list.Contains(vDay ))
{
Console.WriteLine("that is not a valid day of the week");
}
答案 1 :(得分:6)
这就是你需要的:
if (vDay != "Monday" && vDay != "Tuesday" && vDay != "Wednesday" && vDay != "Thursday" && vDay != "Friday")
{
Console.WriteLine("that is not a valid day of the week");
}
答案 2 :(得分:4)
这是使用基于集合的逻辑的另一种观点。
var days = new HashSet<string> { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" };
if (!days.Contains(vDay))
{
Console.WriteLine("that is not a valid day of the week");
}
修改强>
我想解释错误:
Operator !=
on String
只接受运算符的RHS上的单个字符串,C#也不支持通过逻辑或List
运算符创建||
(如果这是预期的,也不是相反,在||
ed字符串上投射!=运算符。但是,可以创建一个集合,并可以使用Contains
等设置操作。在这种情况下,Hashset
通常是我的第一选择,因为它充当了索引查找(尽管对于一组约5个字符串来说可能有点过分,但它的扩展性会比List
或{{1对于更大的集合)。
答案 3 :(得分:4)
由于这里的所有答案都没有解释为什么你首先要面对这个问题,我会尝试这样做。
当我使用时!=它给我一个错误,说“不能适用于布尔 和字符串“
这是因为,在您的代码中:
...vDay != "Monday" || "Tuesday" ...
将 vDay
与成功计算的字符串“Monday”进行比较,然后将结果(布尔值)与字符串“Tuesday”进行比较。这给你的问题是“ ...不能应用于bool和string .. ”
没有!=而只是=我得到“字符串和字符串
vDay
被赋予“星期一”的值(这可能导致字符串“星期一”)但是字符串“星期一”正在与字符串“星期二”进行比较。这给你的问题是“ ...不能应用于字符串和字符串.. ”。
正确的方法是分别指定运算符:
...vDay != "Monday" && vDay != "Tuesday"...
或使用其他答案中最佳描述的其他方式。
答案 4 :(得分:0)
var jsonObj = {
"name": "Rohit",
"age": 27,
"city": "Gurgaon"
};
// if you don't need specific keys you should delete this and ~keys.indexOf(prop) in condition
var keys = ['name', 'city', 'moscow'];
function newObj(obj, count) {
var newObj = {};
var counter = count;
for (var prop in obj) {
if (jsonObj.hasOwnProperty(prop) && ~keys.indexOf(prop)) {
newObj[prop] = obj[prop];
counter -= 1;
}
if(counter === 0) break;
}
return newObj;
}
console.log(JSON.stringify(newObj(jsonObj, 20)));
这应该这样做。
答案 5 :(得分:-1)
Text='<%# Eval("STS").ToString() == "N" ||Eval("STS").ToString() =="R" ? "<h5>Approve?</h5>" : "<h5>Approved!</h5>" %>'