C# C“字符串元素范围”:&引用;相等的

C# C“字符串元素范围”:&引用;相等的,c#,string,C#,String,是否可以像Python中那样快速显示字符串元素范围,并使用“:”谢谢 例如 C# 有没有可能在不使用循环的情况下在C#中执行此操作。就目前而言,这样做是可能的 String s="abazvbn" for(int i=2;i<5;i++) COnsole.WriteLine(s[i]) String s=“abazvbn” 对于(int i=2;i类似地,您有方法。参数略有不同。您传入起始索引和要返回的子字符串的长度 或者您可以创建一个Slice()扩展方法。将它放在一个静态类中 pub

是否可以像Python中那样快速显示字符串元素范围,并使用“:”谢谢

例如

C# 有没有可能在不使用循环的情况下在C#中执行此操作。就目前而言,这样做是可能的

String s="abazvbn"
for(int i=2;i<5;i++)
COnsole.WriteLine(s[i])
String s=“abazvbn”
对于(int i=2;i类似地,您有方法。参数略有不同。您传入起始索引和要返回的子字符串的长度

或者您可以创建一个
Slice()
扩展方法。将它放在一个静态类中

public static class StringExtensions
{
    public static string Slice(this string s, int startIndex, int endIndex)
    {
    int length = endIndex - startIndex + 1;               // Calculate length
    return s.Substring(startIndex, length); // Return Substring of length
    }
}
然后你可以像这样使用它

string mystring = "abazvbn";
string myslice = mystring.Splice(2, 5);//myslice is azvb
同样,您也有这个方法。参数略有不同。您传入起始索引和要返回的子字符串的长度

或者您可以创建一个
Slice()
扩展方法。将它放在一个静态类中

public static class StringExtensions
{
    public static string Slice(this string s, int startIndex, int endIndex)
    {
    int length = endIndex - startIndex + 1;               // Calculate length
    return s.Substring(startIndex, length); // Return Substring of length
    }
}
然后你可以像这样使用它

string mystring = "abazvbn";
string myslice = mystring.Splice(2, 5);//myslice is azvb

应该注意的是,
String.Substring()
是一个非常敏感的方法-如果你超出了字符串的长度,你会得到一个
ArgumentOutOfRangeException
。Python的宽容性要大得多。也许你希望它敏感一些。如果不是,那么一定要把它修改得更像Python(我想不起所有的Python语法了)或者使用LINQ,比如
s.Skip(2).Take(5-2)
不会在值超出范围时崩溃。或者是
SafeSubstring
扩展方法,这是我想象中存在于大约一半jillion工具箱中的东西之一。应该注意的是
String.Substring()
是一个非常敏感的方法-如果你超出了字符串的长度,你会得到一个
ArgumentOutOfRangeException
。Python更宽容。好吧,也许你希望它敏感。如果不是,那么一定要把它修改得更像Python(我想不起所有的Python语法了)或者使用LINQ,比如
s.Skip(2).Take(5-2)
在值超出范围时不会崩溃。或者使用
SafeSubstring
扩展方法,这是我想象中存在于大约一半jillion工具箱中的东西之一。