簡體   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