标签: enumerable

为什么ES6 WeakMap不可枚举?

在我重新进入JavaScript(和相关)之前,我已经完成了很多ActionScript 3,并且他们有一个Dictionary对象,它具有弱键,就像即将发布的WeakMap一样; 但AS3版本仍然像常规通用对象一样可枚举,而WeakMap特别没有.keys().values().

AS3版本允许我们安装一些非常有趣和有用的构造,但我觉得JS版本有些限制.这是为什么?

如果Flash VM可以做到这一点,那么是什么阻止浏览器做同样的事情呢?我读到了它是如何"非确定性"的,但这有点恰到好处?

javascript enumerable weakmap ecmascript-6

27
推荐指数
1
解决办法
2050
查看次数

在Delphi中实现ListTypeType <T>

我正在使用Delphi XE来实现一个枚举器,它允许按类型过滤列表中的元素.我已经快速组装了一个测试单元如下:

unit uTestList;

interface

uses Generics.Collections;

type
  TListItemBase = class(TObject)
  end; { TListItemBase }

  TListItemChild1 = class(TListItemBase)
  end;

  TListItemChild2 = class(TListItemBase)
  end;

  TTestList<T : TListItemBase> = class;

  TOfTypeEnumerator<T, TFilter> = class(TInterfacedObject, IEnumerator<TFilter>)
  private
    FTestList : TList<T>;
    FIndex : Integer;
  protected
    constructor Create(Owner : TList<T>); overload;

    function GetCurrent : TFilter;
    function MoveNext : Boolean;
    procedure Reset;

    function IEnumerator<TFilter>.GetCurrent = GetCurrent;
    function IEnumerator<TFilter>.MoveNext = MoveNext;
    procedure IEnumerator<TFilter>.Reset = Reset;
  end;

  TOfTypeEnumeratorFactory<T, TFilter> = class(TInterfacedObject, IEnumerable)
  private
    FTestList : TList<T>;
  public
    constructor …
Run Code Online (Sandbox Code Playgroud)

delphi generics enumerable

21
推荐指数
1
解决办法
5836
查看次数

将数组传递给params object []或IEnumerable <T>的函数

我想将一个自定义对象数组传递给一个String.Join具有以下签名的函数:

  • public static string Join(string separator, params Object[] values)
  • public static string Join(string separator, IEnumerable<T> values)

如果我这样调用函数:

var arr = new MyClass[]{ new MyClass(), new MyClass() };
string text = string.Join("\n", arr);
Run Code Online (Sandbox Code Playgroud)

我收到编译器错误:

以下方法或属性之间的调用不明确:'string.Join(string,params object [])'和'string.Join(string,System.Collections.Generic.IEnumerable)'

我可以通过使用IEnumerable<T>函数来解决歧义:

var arr = new MyClass[]{ new MyClass(), new MyClass() };
string text = string.Join<MyClass>("\n", arr);
Run Code Online (Sandbox Code Playgroud)

但是我可以调用该params object[]函数吗?在性能关键的情况下,最好是直接访问数组而不是通过枚举器.

我正在使用C#4.0,如果这有任何区别.

c# arrays string overloading enumerable

20
推荐指数
1
解决办法
1万
查看次数

AsEnumerable()对LINQ实体的影响是什么?

这里这里阅读问题让我对这种情况有所了解,似乎使用AsEnumerable是内存消耗.有没有更好的方法来实现这个LINQ以及现在的方式,数据是否可靠?

删除AsEnumerable导致"除了Contains运算符之外,本地序列不能用于查询运算符的LINQ to SQL实现".

var results = from p in pollcards.AsEnumerable()
                          join s in spoils.AsEnumerable() on new { Ocr = p.OCR, fileName = p.PrintFilename } equals new { Ocr = s.seq, fileName = s.inputFileName }
                          where p.Version == null
                          orderby s.fileOrdering, s.seq
                          select new ReportSpoilsEntity
                          {
                              seq = s.seq,
                              fileOrdering = s.fileOrdering,
                              inputFileName = s.inputFileName,
                              Ocr = p.OCR,
                              ElectorName = p.ElectorName
                          };
Run Code Online (Sandbox Code Playgroud)

c# linq entity enumerable

19
推荐指数
2
解决办法
2万
查看次数

用于零或空的惯用Ruby过滤器?

我正在寻找一种更惯用的方法来过滤掉数组中的空元素或空元素.

我有很多形式的方法:

def joined
    [some_method, some_other_method].compact.reject(&:empty?).join(' - ')
end
Run Code Online (Sandbox Code Playgroud)

这将取和的结果,some_method并且some_other_method仅返回非零(compact基本上等于reject(&:nil?))和非空的一个().

在Array或Enumerable中有什么可以一次性获得同样的东西吗?

ruby idioms enumerable

18
推荐指数
1
解决办法
7734
查看次数

Java数组和列表的共同祖先

在.NET中,数组和列表都具有Enumerable作为祖先,因此接受Enumerable作为参数的方法可以接收数组和列表作为其参数.我想知道Java中是否有类似的东西?

java enumerable

17
推荐指数
1
解决办法
9852
查看次数

Enumerable.Repeat()执行深层复制吗?

如果我使用以下内容:

  var myList = Enumerable.Repeat(myCustomObject, 2);
Run Code Online (Sandbox Code Playgroud)

列表中的第二个元素是否是第一个元素的深层副本?

注意: myCustomObject可以是任何Object

编辑:在处理自定义对象时,您能告诉我Enumerable.Repeat的潜在用途吗?

谢谢

linq enumerable deep-copy repeat

15
推荐指数
2
解决办法
1022
查看次数

词语产量的含义

目前我正在阅读David A. Black的"The Well-Grounded Rubyist",我坚持10.9章(枚举器和可枚举的下一个维度).我的问题是关于yield方法.yieldRuby上下文中单词的含义是什么?我的母语是俄语,谷歌翻译向我展示了一堆翻译变体,让我感到困惑.其中有一些:给予,带来,投降(放弃),生产,同意,遵守和许多其他人.

UPD:请注意这个事实,我试图理解Enumerator :: Yielder#yield方法的含义 ,但不是yield关键字本身.

UPD_2:我发现了有关枚举器的有趣文章:" Ruby中的懒惰枚举器 ".

ruby yield point enumerable

15
推荐指数
1
解决办法
5773
查看次数

Ruby数组哈希.group_by并在一行中修改

我有一系列哈希,类似于

[ {:type=>"Meat", :name=>"one"}, 
  {:type=>"Meat", :name=>"two"}, 
  {:type=>"Fruit", :name=>"four"} ]
Run Code Online (Sandbox Code Playgroud)

我想把它转换成这个

{ "Meat" => ["one", "two"], "Fruit" => ["Four"]}
Run Code Online (Sandbox Code Playgroud)

我尝试了group_by但是我得到了这个

{ "Meat" => [{:type=>"Meat", :name=>"one"}, {:type=>"Meat", :name=>"two"}],
  "Fruit" => [{:type=>"Fruit", :name=>"four"}] }
Run Code Online (Sandbox Code Playgroud)

然后我不能修改它只留下名称而不是完整的哈希.我需要在一行中执行此操作,因为它适用grouped_options_for_select于Rails表单.

ruby hash ruby-on-rails enumerable

15
推荐指数
2
解决办法
1万
查看次数

Enumerator :: Yielder#yield方法何时有用?

这个问题提到了这个Enumerator::Yielder#yield方法.我之前没有使用它,我想知道在什么情况下它会有用.

当您想要创建无限的项目列表(例如Eratosthenes的Sieve)以及何时需要使用外部迭代器时,它是否主要有用?

ruby yield enumerable

14
推荐指数
1
解决办法
2641
查看次数