如何在SQLite表中获取项目索引?

时间:2013-05-13 12:02:01

标签: c# sqlite

我有一个只包含一列的表 - FolderPath。我可以使用像

这样的代码轻松地从这个表中获取一个项目
var item = from c in db.Table<Profile>() where c.FolderPath == "C:\\" select c;

但是如何在表格中获得这个项目的数量(一行的数量)?是否可以在不添加其他列的情况下使用&#34; Id&#34;?

1 个答案:

答案 0 :(得分:0)

您可以执行以下操作:但您无法确定index,因为没有orderby的Select会导致不确定的订单。

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); 

要确定您可以使用OrderBy的顺序:

var itemWithIndex = db.Table<Profile>()
                      .OrderBy(r=> r.FolderPath)
                      .Select((r, i) => new {Value =r, Index = i})
                      .FirstOrDefault(r=> r.Value.FolderPath == "C:\\");

我不确定为什么要避免使用额外的列来指定表中的ID。可能它是一个更好的选择,因为即使在添加或更新记录的情况下,这也将保持相同。