2015-09-05 97 views
1

我使用的是C#.NET应用程序,但我想把它移植到C#控制台应用程序迁移到控制台应用程序和用户输入

类:

static class StringExtensions 
{ 
    public static IEnumerable<String> SplitInParts(this String s, Int32 partLength) 
    { 
     if (s == null) 
      throw new ArgumentNullException("s"); 
     if (partLength <= 0) 
      throw new ArgumentException("Part length has to be positive.", "partLength"); 

     for (var i = 0; i < s.Length; i += partLength) 
      yield return s.Substring(i, Math.Min(partLength, s.Length - i)); 
     } 

} 

电话:

var parts = "32427237".SplitInParts(3); 
Console.WriteLine(String.Join(" ", parts)); 

//输出是324 272 37

所以我想给用户输入数值,例如123456789和split outpu t是123 456 789,我该如何在控制台应用程序上做到这一点?

------------------------------ UPDATE --------------- ---------------------------

完整代码:

namespace prw 
{ 
    class Program 
    { 
     public static IEnumerable<String> SplitInParts(this String s, Int32 partLength) 
     { 
      if (s == null) 
       throw new ArgumentNullException("s"); 
      if (partLength <= 0) 
       throw new ArgumentException("Part length has to be positive.", "partLength"); 

      for (var i = 0; i < s.Length; i += partLength) 
       yield return s.Substring(i, Math.Min(partLength, s.Length - i)); 
     } 




     private static void Main(string[] args) 
     { 
      var input= Console.ReadLine(); 
      var parts = input.SplitInParts(3); 
      Console.WriteLine(String.Join(" ", parts)); 
     } 
    } 
} 
+1

使用到Console.ReadLine()! – Arash

+0

但如果我想创建新的控制台proyect,只需复制我的代码并更改读线的writeline? –

回答

1
class Program 
{ 
    private static void Main(string[] args) 
    { 
     var input= Console.ReadLine(); 
     var parts = input.SplitInParts(3); 
     Console.WriteLine(String.Join(" ", parts)); 
    } 
} 
public static class Util 
{ 
    public static IEnumerable<String> SplitInParts(this String s, Int32 partLength) 
    { 
     if (s == null) 
      throw new ArgumentNullException("s"); 
     if (partLength <= 0) 
      throw new ArgumentException("Part length has to be positive.", "partLength"); 

     for (var i = 0; i < s.Length; i += partLength) 
      yield return s.Substring(i, Math.Min(partLength, s.Length - i)); 
    } 
} 
+0

我有一个代码错误...当我声明这个字符串s时,它说扩展方法只能在非泛型,非嵌套静态类中声明。我上传我的代码 –

+1

@Gerardo Ventas我改变了代码 – Arash

+0

优秀,坦克你这么多! @Arash jo –

相关问题