我以前从来没有偶然发现过这个问题,但我现在已经感到惊讶,因为我找不到一个非常简单的方法来转换IEnumerable<char>为a string.
我能想到的最好的方法是string str = new string(myEnumerable.ToArray());,但是,对我来说,似乎这会创造一个新的char[],然后string从中创造一个新的,这看起来很昂贵.
我认为这将是.NET框架内置的常用功能.有更简单的方法吗?
对于那些感兴趣的人,我想使用它的原因是使用LINQ来过滤字符串:
string allowedString = new string(inputString.Where(c => allowedChars.Contains(c)).ToArray());
Run Code Online (Sandbox Code Playgroud) 我只是想知道如何限制C#中字符串的长度.
string foo = "1234567890";
Run Code Online (Sandbox Code Playgroud)
说我们有.我怎么能限制foo说5个字符?
我尝试了以下方法:
var Title = LongTitle.Substring(0,20)
Run Code Online (Sandbox Code Playgroud)
如果LongTitle的长度小于20,则无效.如何将字符串限制为最多20个字符,但如果它们只是例如5个字符,则不会出错?
与此不重复.
我想让一个字符串有一个最大长度.它永远不会超过这个长度.让我们说20个字符长度.如果提供的字符串> 20,则取前20个字符串并丢弃其余字符串.
这个问题的答案显示了如何使用函数限制字符串,但我想在没有函数的情况下直接执行.我希望每次写入字符串时都会发生字符串长度检查.
下面是我并不想这样做:
string myString = "my long string";
myString = capString(myString, 20); //<-- Don't want to call a function each time
string capString(string strToCap, int strLen)
{
...
}
Run Code Online (Sandbox Code Playgroud)
我能用一个属性完成这个:
const int Max_Length = 20;
private string _userName;
public string userName
{
get { return _userName; }
set
{
_userName = string.IsNullOrEmpty(value) ? "" : value.Substring(0, Max_Length);
}
}
Run Code Online (Sandbox Code Playgroud)
然后我可以轻松地使用它,而不是调用函数来限制它:
userName = "Programmer";
Run Code Online (Sandbox Code Playgroud)
这个问题是每个string我想要上限必须为它们定义多个变量.在这种情况下,_userName和userName(属性)变量.
任何聪明的方法,不为每个字符串创建多个变量,同时,每次我想修改时都不必调用函数string …
我有一个数字字符串,可能是"124322"或"1231.232"或"132123.00".我想删除我的字符串的最后一个字符(无论它是什么).如果我的字符串"99234"成为了我想要的"9923".
字符串的长度是可变的.它不是常数所以我不能使用string.Remove或trim或者像它们一样(我想).
我该如何实现这一目标?
如果我的版本号有5位数字,例如"1.0.420.50.0",我怎么能把这个号码(和其他版本号码如"1.0.512.500.0")截断为4位数?"1.0.420.50.0" - >"1.0.420.50"
我更喜欢使用数组,但任何其他方法也可以使用!在此先感谢您的任何建议!
我正在尝试将此从字符串中删除 CRLF 的 VBA 函数转换为必须执行相同结果的 C# 函数
Private Function RemoveCRLFFromString(ByVal pString As Variant) As String
Dim i As Integer
Dim c As String * 1
If IsNull(pString) Then
RemoveCRLFFromString = ""
Else
For i = 1 To Len(pString)
c = Mid$(pString, i, 1)
If Asc(c) <> 10 And _
Asc(c) <> 13 Then
RemoveCRLFFromString = RemoveCRLFFromString & c
End If
Next i
End If
RemoveCRLFFromString = Left$(RemoveCRLFFromString, 9)
End Function
Run Code Online (Sandbox Code Playgroud)
到目前为止,我想出了:
public static string RemoveCRLFFromString(string pString )
{
if(String.IsNullOrEmpty(pString))
{ …Run Code Online (Sandbox Code Playgroud) 我有一段代码,我需要缩短变量中的字符串。我想知道我该怎么做。我的代码如下。
string test = Console.ReadLine();
if(string.Length > 5)
{
//shorten string
}
Console.WriteLine(test);
Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)