2009-08-13 17 views
37

Bu, her şimdi ve sonra benim için ekiyor: Python'da range() işlevini kötü şekilde isteyen bazı C# kodları var.C# daki Pythons aralığı (12) eşdeğeri var mı?

Ben

for (int i = 0; i < 12; i++) 
{ 
    // add code here 
} 

kullanarak farkındayım Ama aşağı fonksiyonel kullanımlar bu frenler, ben yukarıdaki döngü yazmak yerine bir Linq Sum() yapmak istediğinizde.

Herhangi bir yerleşik var mı? Ben her zaman sadece yield veya benzeri ile kendi rulo rulo olabilir, ancak olurdu sadece için var.

+0

Enumeration.Range değil, Enumerable.Range var. –

+0

düzeltildi. Teşekkürler. –

cevap

72

Sen yöntemle aradığınız:

var mySequence = Enumerable.Range(0, 12); 
+1

Not: Bu System.Linq ve C# 3.0 gerektirir. – crb

+0

crb: C# 3 gerekli değil. Bu sınıfı C# 2'den kullanabilirsiniz ancak .NET 3.5 çerçevesinde bulunan System.Core'a başvurmanız gerekir. –

+5

Bu, kafa karıştırıcı çünkü Python'un versiyonunun '(başlangıç, bitiş)' olduğu ve .NET'in versiyonunun (başlangıç, sayım) 'olduğuna inanıyorum - onları karıştırmanın hatalarını yapma! – jocull

6
Enumerable.Range(start, numElements); 
5

Enumerable.Range (0,12);

13

Sadece herkesin cevaplarını tamamlamak için, Enumerable.Range(0, 12);'un Python 2.x'in xrange(12) numarasına daha yakın olduğunu eklemeliyim, çünkü bu bir numaralandırılabilir.

Enumerable.Range(0, 12).ToList(); 

veya

Enumerable.Range(0, 12).ToArray(); 

Python en range(12) yakın olan: herkes özellikle bir liste veya bir dizi gerektiriyorsa

.