C# 如何获取SQLite表中项的索引?
我有一个只包含一列的表-FolderPath。我可以很容易地使用这样的代码从这个表中获取一个项目C# 如何获取SQLite表中项的索引?,c#,sqlite,C#,Sqlite,我有一个只包含一列的表-FolderPath。我可以很容易地使用这样的代码从这个表中获取一个项目 var item = from c in db.Table<Profile>() where c.FolderPath == "C:\\" select c; var item=from db.Table()中的c,其中c.FolderPath==“c:\\”选择c; 但是如何在表中获取此项的编号(行数)?是否可以不添加诸如“Id”之类的附加列?您可以执行如下操作:,但无法确定索引,
var item = from c in db.Table<Profile>() where c.FolderPath == "C:\\" select c;
var item=from db.Table()中的c,其中c.FolderPath==“c:\\”选择c;
但是如何在表中获取此项的编号(行数)?是否可以不添加诸如“Id”之类的附加列?您可以执行如下操作:,但无法确定
索引,因为选择而不添加orderby可能会导致订单不确定
var itemWithIndex = db.Table<Profile>()
.Select((r, i) => new {Value =r, Index = i})
.FirstOrDefault(r=> r.Value.FolderPath == "C:\\");
if(itemWithIndex != null)
Console.WriteLine(itemWithIndex.Index);
var itemWithIndex=db.Table()
.Select((r,i)=>new{Value=r,Index=i})
.FirstOrDefault(r=>r.Value.FolderPath==“C:\\”;
if(itemWithIndex!=null)
Console.WriteLine(itemWithIndex.Index);
为了确定订单,您可以使用OrderBy,如:
var itemWithIndex = db.Table<Profile>()
.OrderBy(r=> r.FolderPath)
.Select((r, i) => new {Value =r, Index = i})
.FirstOrDefault(r=> r.Value.FolderPath == "C:\\");
var itemWithIndex=db.Table()
.OrderBy(r=>r.FolderPath)
.Select((r,i)=>new{Value=r,Index=i})
.FirstOrDefault(r=>r.Value.FolderPath==“C:\\”;
我不确定您为什么要避免在表中指定ID
的额外列。这可能是一个更好的选择,因为即使在添加或更新记录的情况下,这也将保持不变