- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Dart 中,使用 elementAt
访问列表元素有什么区别吗?和 []
运算符(operator)?
var sensors = ["ir", "ultrasound", "laser"];
void main() {
print(sensors.elementAt(1));
print(sensors[1]);
}
最佳答案
.elementAt()
方法随 Iterable
一起提供类(class)。它适用于所有可迭代对象,不仅是 Lists
.
一些可迭代对象可能有 更高效 查找元素的方法,列表也是如此,使用括号表示法。
我所说的更有效率是什么意思?
括号表示法将隐式调用 .elementAt() 。括号表示法没有任何额外的含义,只有易用性 - 正如许多人所说,它是一种“语法糖”。这就是我所说的效率。您可以通过更少的输入来使用它。我的意思不是算法效率,比如在大 List
中更快地找到元素或类似的东西。
此外,Dart 中的列表类似于许多语言中所谓的“数组”。这些老派语言使用括号表示法来标识数组元素。所以括号表示法也是一种传统,当您来自 Java 或 C# 等背景时,它可以帮助您轻松开始使用 Dart。
关于dart - list.elementAt(n) 和 list[n] 之间有什么区别吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55270636/
在我的代码中,我得到了一个 ConcurrentDictionary,现在我想遍历 Dictionary 中的每个元素,但是如果条件为真,我想从这个 Dictionary 中删除一个元素,所以我不能使
我有这段代码从列表的计数 (-1) 中获取一个随机数,然后获取该索引处的元素。然后我从该列表中删除该对象并调用代码,直到所有对象都从该列表中消失。 我有点困惑,为什么会有 13 个索引 (0-12),
IGrouping 支持 ElementAt 方法来索引分组的集合。那么为什么方括号运算符不起作用呢? 我可以做类似的事情 list.GroupBy(expr).Select(group => gr
考虑这段代码: int size = 100 * 1000 * 1000; var emu = Enumerable.Range(0, size); var arr = Enumerable.Rang
Enumerable.ElementAt(TSource) 方法的 MSDN 库条目说 "If the type of source implements IList, that implementa
我有一个字典,我需要用传入数据保持更新,在解析传入数据后,我必须检查字典中是否有任何条目不存在于传入数据中(解析时的传入数据是一个列表我需要将其与字典条目进行映射)。 为了避免多次循环删除条目,我为字
我有一个字典,我需要遍历其中的元素并进行更改。我不能使用 foreach 语句,因为它有时会抛出 InvalidOperationException,表示在枚举期间无法修改集合。 我可以使用 for
我的部分代码遇到了困难: private void UpdateOutputBuffer() { T[] OutputField = new T[DisplayedLe
IEnumerable公开一个枚举器,因此可以枚举对象。此接口(interface)公开的索引没有任何内容。 IList关于索引,因为它公开了 IndexOf方法。 那么 Enumerable.Ele
我遇到的问题是,在创建类型为 List 的对象“oListType01”并将其分配给类型为“object”的另一个对象“oObjectType”之后,我无法再访问任何函数“ElementAt(1)”
var ints = [0, 1, 2, 3]; var foo = ints.elementAt(1); var bar = ints[1]; assert(foo == bar); 两者 elem
请注意,我目前正在学习 C# 并在遇到这个障碍时翻阅教科书。 你怎么称呼ElementAt来自 IEnumerable ?this中的第二条评论 所以问题提到了它,但我只是收到一个错误。 Here他们
为什么字典在动态规划期间“不包含‘ElementAt’的定义” Dictionary D1 = new Dictionary(); D1.Add("w1", 10);
我想获取列表的方法“ElementAt”的 MethodInfo。 MethodInfo method = obj.GetType().GetMethod("ElementAt"); 但是,“方法”是
在 LINQ to SQL 中,尝试对从 LINQ to SQL 查询返回的 IQueryable 使用 ElementAt 扩展方法时,出现异常“不支持查询运算符‘ElementAt’。”。 这是堆
我正在使用方法 Queryable.ElementAt(Int32) 来获取查询结果的特定元素。 IQueryable entities = db.MyEntities.Where(p => p.Fo
这似乎是一个愚蠢的问题,但我还没有找到答案,所以就在这里。 :) 在这两种情况下,如果您未能检查集合的边界,您将得到一个“超出范围”的异常。这只是编码风格偏好吗? 如果有人需要示例: List myL
我目前正在构建一个非常依赖效率的数据结构。 任何人都可以向我提供有关 Find(item => item.X = myObject.Property) 方法实际工作原理的资源吗?它是否在所有元素中线性
Linq 中是否有与ElementAt 相同的方法?除了它返回 IEnumerable使用单个元素,而不是实际元素?是不是有一些SelectRange(startIndex, endIndex)我可以
我使用 (ElementAt,Count) 和 (foreach) 遍历 IEnumerable 作为 Linq 查询的结果。令我惊讶的是,性能差异是 25-30 倍!这是为什么? IEnumerab
我是一名优秀的程序员,十分优秀!