【发布时间】:2019-01-22 19:16:06
【问题描述】:
有一个“book”类型的值列表,还有一个“book”类型的对象。函数执行前工作表和对象的类型是未知的,仅在过程中。当使用“indexOf()”方法时,它给出索引-1,而不是3(当工作表和对象被“book”类型严格键入时检查)。按照惯例,我有一个裸叶和一个裸对象,没有属性和变量。只有在执行之后,对象才会获得类型和值。进行中。这就是全部的困难 有什么收获?
//Object with id = 4, has index 3 in the list
obj = Connector.Get(CurrentTable, "WHERE Id = " + id).FirstOrDefault();
//list with 10 records
var list = Connector.Get(CurrentTable, Condition).ToList();
//Need get 3, got -1
var currIndex = list.IndexOf(obj);
var nextIndex = (currIndex < list.Count - 1 ? currIndex : -1) + 1;
var prevIndex = (currIndex > 0 ? currIndex : list.Count) - 1;
ViewBag.NextPost = list[nextIndex];
ViewBag.PrevPost = list[prevIndex];
【问题讨论】:
-
IndexOf(obj) 将不起作用。 IndexOf 需要一个能够将每个属性与每个实例进行比较的比较方法。我怀疑你有搜索方法。
-
什么意思?
-
什么是
Connector.Get?显然 t 不了解泛型(大约从 2005 年开始)和 Identity Map(许多数据层实现中的常见模式)。 -
您正在尝试比较二进制对象。
标签: c# asp.net asp.net-mvc list linq