比较c#中的两个字符串是否相等,InvariantCulture和Ordinal比较之间有什么区别?
哪个代码更好:
int index = fileName.LastIndexOf(".", StringComparison.InvariantCultureIgnoreCase);
Run Code Online (Sandbox Code Playgroud)
要么
int index = fileName.LastIndexOf(".", StringComparison.OrdinalIgnoreCase);
Run Code Online (Sandbox Code Playgroud) 我有这样的声明:
var vals =
from StandAloneUserPayment saup in _Session.Query<StandAloneUserPayment>()
.Fetch(x => x.RecurringPayments)
where
saup.User.UserId == userId
&& searchString.Contains(saup.FriendlyName, StringComparer.InvariantCultureIgnoreCase)
select
saup;
Run Code Online (Sandbox Code Playgroud)
这似乎正是我应该做的,但是我Contains用下面的消息下划线方法得到整行:
string不包含定义,Contains并且最好的扩展方法重载System.Linq.ParallelEnumerable.Contains<TSource>(System.Linq.ParallelQuery<TSource>, TSource, System.Collections.Generic.IEqualityComparer<TSource>)有一些无效的参数
我究竟做错了什么?