繁体   English   中英

Java中List和Iterator的c#等效项是什么?

[英]what is the c# equivalent of List and Iterator in Java?

我正在手动将此Java代码转换为C#:

private static final List<BigInteger> PRIMES = Arrays.asList(new BigInteger[]
    { new BigInteger("10007"), new BigInteger("10009"),
      new BigInteger("10037"), new BigInteger("10039")});

Iterator<BigInteger> primes = PRIMES.iterator();

这是我在C#中的代码:

private static readonly List<BigInteger> PRIMES = new List<BigInteger> {
    10007, 10009,
    10037, 10039 };
IEnumerable<BigInteger> primes = PRIMES.AsEnumerable<BigInteger>();

但是,我不确定我的代码是否正确。 我真的不了解C#中的列表和迭代器。

请任何人帮助我正确转换代码,我们将为您提供任何帮助。

非常感谢。

您的代码是正确的。 List<T>是java ArrayList<T>的C#等效项,而IEnumerable<T>或多或少是java Iterator<T>的等效项。 公用API有所不同,但最终目标是相同的。

注意,尽管没有必要进行AsEnumerable调用。 由于List<T>实现IEnumerable<T>您可以编写:

IEnumerable<BigInteger> primes = PRIMES;

话虽如此,调用AsEnumerable并没有错,也没有付出任何代价。

您的代码看起来不错,但是请注意,可以通过索引访问c#中的List,因此根据您的操作,可能不需要等效的迭代器。

Java'List'是一个接口,因此.NET的等效项是'IList',而Java的Iterator的.NET等效项是'IEnumerator',而不是'IEnumerable':

private static readonly IList<System.Numerics.BigInteger> PRIMES = new System.Numerics.BigInteger[] { 10007, 10009, 10037, 10039 };

internal IEnumerator<System.Numerics.BigInteger> primes = PRIMES.GetEnumerator();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM