2011-01-24 75 views
2

我有以下的代码,其中frequencyOfReminders = "2 days"C#字符串操作

dailyReminders = frequencyOfReminders.IndexOf("day", StringComparison.OrdinalIgnoreCase) >= 0; 

我想dailyReminders是真的,我应该用下面的呢?

dailyReminders = frequencyOfReminders.Contains("day", StringComparison.OrdinalIgnoreCase) >= 0; 

我应该更清楚。我有字符串frequencyOfReminders =“2天”,例如 ,我希望dailyreminders在frequencyOfReminders中发现字符串“day”时返回true,其中返回true的其他值为:daily,3 days,1 day,..等

+0

能否请你格式化代码部分的代码? – RQDQ 2011-01-24 17:15:51

回答

5

String.Contains方法返回一个布尔值,所以> = 0不会编译。

应该是这样的:

dailyReminders = frequencyOfReminders.Contains("day", StringComparison.OrdinalIgnoreCase); 

然而,在这种情况下,我会向精益包含了可读性。

编辑:

哦,你要搜索多个搜索字词。在这种情况下,做到这一点的一种方法是使用多个包含电话(简单):

dailyReminders = frequencyOfReminders.Contains("day", StringComparison.OrdinalIgnoreCase) 
       || frequencyOfReminders.Contains("daily", StringComparison.OrdinalIgnoreCase); 

另一种方式是进入正则表达式(完全解释会采取一些工作这一做法),但这里是一个链接,解释它:

http://www.regular-expressions.info/dotnet.html

正则表达式是令人难以置信的强大,但有一个学习曲线。

0
dailyReminders = frequencyOfReminders.Contains("day", StringComparison.OrdinalIgnoreCase) 

不要求> = 0。在这两种情况下,结果都是一样的。

0

字符串函数 “包含” 并返回一个布尔值,所以像

boolean dailyReminders = frequencyOfReminders.Contains("day"); 

将设置dailyReminders为true。

0

IndexOf返回-1时,子未找到这样:

dailyReminders = frequencyOfReminders.IndexOf("day", StringComparison.OrdinalIgnoreCase) != -1