我有这样的声明:

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;

这似乎正是我应该做的,但是我用Contains方法获得了整行,并在下面的消息下划线:



我究竟做错了什么?

最佳答案

试试IndexOf:

searchString.IndexOf(saup.FriendlyName,
                     StringComparison.InvariantCultureIgnoreCase) != -1

之所以不起作用,是因为接受ContainsIEqualityComparer<TSource>扩展方法是在String上操作的,该方法实现了IEnumerable<char>,而不是IEnumerable<string>,因此无法将stringIEqualityComparer<string>传递给它。

10-07 22:59