【发布时间】:2017-05-23 10:53:06
【问题描述】:
我在我的 Xamarin 应用程序上使用 sqlite 数据库,我正在尝试在我的数据模型上设置排序规则属性
public class Customer
{
[PrimaryKey, AutoIncrement]
public int ID { get; set; }
[Collation("NOCASE")]
public string Name { get; set; }
public string Email { get; set; }
}
但我在任何地方都没有找到必须将哪个值设置为排序规则属性以控制区分大小写/不区分大小写的排序规则
这是我的测试代码:
var dbfile = DependencyService.Get<IFileHelper().GetLocalFilePath("data.db");
db = new SQLiteAsyncConnection(dbfile);
db.CreateTableAsync<Customer>().Wait();
var result = await db.Table<Customer>().OrderBy(c => c.Name).ToListAsync();
预期结果:名称列中不区分大小写的顺序,
实际结果:顺序区分大小写。
【问题讨论】:
-
1) var sortedWords = words.OrderBy(a => a.Name, StringComparer.OrdinalIgnoreCase); 2) sortedWords = words.OrderBy(a => a.Name, StringComparer.CurrentCultureIgnoreCase); 3) sortedWords = words.OrderBy(a => a.Name, StringComparer.InvariantCultureIgnoreCase);
-
抱歉,我没有发现可以指定 StringComparer 的方法 OrderBy 的重载