Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何获取SQLite表中项的索引?_C#_Sqlite - Fatal编程技术网

C# 如何获取SQLite表中项的索引?

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”之类的附加列?您可以执行如下操作:,但无法确定索引,

我有一个只包含一列的表-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”之类的附加列?

您可以执行如下操作:,但无法确定
索引,因为
选择
而不添加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
的额外列。这可能是一个更好的选择,因为即使在添加或更新记录的情况下,这也将保持不变