F # có chuỗi cho phép để tạo ra chuỗi:Làm thế nào để tạo mảng với dãy số nguyên trong C#?
seq { 0 .. 10 }
Tạo chuỗi các con số từ 0 đến 10
Có một cái gì đó tương tự như trong C#?
F # có chuỗi cho phép để tạo ra chuỗi:Làm thế nào để tạo mảng với dãy số nguyên trong C#?
seq { 0 .. 10 }
Tạo chuỗi các con số từ 0 đến 10
Có một cái gì đó tương tự như trong C#?
Bạn có thể sử dụng Enumerable.Range(0, 10);
. Ví dụ:
var seq = Enumerable.Range(0, 10);
Trang MSDN here.
Enumerable.Range(0, 11);
Tạo chuỗi các số nguyên trong phạm vi được chỉ định.
http://msdn.microsoft.com/en-us/library/system.linq.enumerable.range.aspx
Bạn có thể tạo một hàm đơn giản. Điều này sẽ làm việc cho một chuỗi phức tạp hơn. Nếu không, Enumerable.Range
sẽ thực hiện.
IEnumerable<int> Sequence(int n1, int n2)
{
while (n1 <= n2)
{
yield return n1++;
}
}
Chà, điều này khiến tôi hiểu cách thức hoạt động của 'yield': D – v01pe
thực hiện của tôi:
private static IEnumerable<int> Sequence(int start, int end)
{
switch (Math.Sign(end - start))
{
case -1:
while (start >= end)
{
yield return start--;
}
break;
case 1:
while (start <= end)
{
yield return start++;
}
break;
default:
yield break;
}
}
Lưu ý: Điều này tạo ra một chuỗi bắt đầu từ 0 với 10 mặt hàng (kết thúc vào lúc 9). Nếu bạn muốn 0 * đến * 10, tham số thứ hai sẽ là 11. Và nếu bạn cần một mảng thực tế và không phải là 'IEnumerable ', bao gồm một cuộc gọi' .ToArray() '. –