[英]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.