Я действительно озадачен этим. Я изучаю LINQ и использую Microsoft Visual C # Express Edition для подключения к базе данных SQL Server, содержащей информацию о моих книгах. Я создал классы LINQ to SQL по мере необходимости. Этот материал, очевидно, работает. Все это работает, за исключением того, что я не могу понять всю жизнь, почему, если я ищу «SR» (заглавные буквы), он находит две записи, «SR-71 Revealed, The Inside Story», как и ожидалось, но также находит « Faded Sun: Kesrith ", где" sr "в нижнем регистре. Я использую метод IndexOf () класса string, который должен выполнять сравнение с учетом регистра, верно? Выходные данные отображают название второй книги, как показано выше, с "sr" в нижнем регистре. Вот соответствующая часть кода:
// normal using directives here
namespace QueryBooksDB {
class Program {
static void Main() {
var urgh = new BooksDataContext();
Console.WriteLine("Enter a string to search for:");
string str = Console.ReadLine();
var list = from book in urgh.Books
where book.Title.IndexOf(str) > -1
orderby book.Title
select new { ID = book.BookId, book.Title, book.Location };
foreach ( var b in list ) {
Console.WriteLine(b.Title);
}
}
}
}