相关疑难解决方法(0)

==和等于()之间的C#差异

我在Silverlight应用程序中有一个比较2个字符串的条件,由于某种原因,当我使用==它时返回false.Equals()返回true.

这是代码:

if (((ListBoxItem)lstBaseMenu.SelectedItem).Content.Equals("Energy Attack"))
{
    // Execute code
}

if (((ListBoxItem)lstBaseMenu.SelectedItem).Content == "Energy Attack")
{
    // Execute code
}
Run Code Online (Sandbox Code Playgroud)

任何理由为什么会这样?

.net c# equals

519
推荐指数
9
解决办法
28万
查看次数

制作字符串大写的第一个字母(具有最大性能)

我有DetailsView一个TextBox 和我想要的输入数据始终保存的第一个字母注册资本.

例:

"red" --> "Red"
"red house" --> " Red house"
Run Code Online (Sandbox Code Playgroud)

如何实现这种最大化的性能


注意:
根据答案和答案下的评论,很多人认为这是在询问字符串中所有单词的大写.例如,=> Red House 它不是,但如果这是你所追求的,寻找使用其中一个答案TextInfoToTitleCase方法.(注意:对于实际提出的问题,这些答案是不正确的.)
请参阅TextInfo.ToTitleCase doc以获取警告(不触及所有大写单词 - 它们被视为首字母缩略词;可以在"不应该"的单词中间小写字母降低,例如"麦当劳"=>"麦当劳";不保证能够处理所有特定文化的细微差别.


注意:
关于第一个字母之后的字母是否应该强制小写,问题不明确.接受的答案假定只应改变第一个字母.如果要强制除第一个字符串之外的字符串中的所有字母都是小写,请查找包含但不包含ToTitleCase的答案.ToLower

c# performance

412
推荐指数
17
解决办法
45万
查看次数

为什么这个字符串的长度比它中的字符数长?

这段代码:

string a = "abc";
string b = "AC";
Console.WriteLine("Length a = {0}", a.Length);
Console.WriteLine("Length b = {0}", b.Length);
Run Code Online (Sandbox Code Playgroud)

输出:

Length a = 3
Length b = 4
Run Code Online (Sandbox Code Playgroud)

为什么?我唯一能想到的是中文字符长度为2个字节,并且该.Length方法返回字节数.

.net c# string unicode unicode-string

145
推荐指数
8
解决办法
2万
查看次数

如何获取String的前五个字符

我已经阅读了这个问题,以获得字符串的第一个字符.有没有办法从C#中的字符串中获取前n个字符?

c# asp.net string char

118
推荐指数
11
解决办法
38万
查看次数

如何读取字符串中的字符作为UTF-32十进制值?

例如,我有这个Unicode字符串,它由Cyclone和C#和.NET中定义的日本城堡组成,它使用UTF-16进行CLR字符串编码:

var value = "";
Run Code Online (Sandbox Code Playgroud)

如果你检查一下,你很快发现value.Length = 4因为C#使用UTF-16编码的字符串,所以由于这些原因,我不能只循环每个字符并得到它的UTF-32十进制值:foreach (var character in value) result = (ulong)character;.它引出了一个问题,我怎样才能获得任何字符串中每个字符的UTF-32十进制值?

Cyclone应该127744和日本城堡一样127983,但我正在寻找一个可以接受任何C#字符串的一般答案,并且总是从其中的每个字符产生一个UTF-32十进制值.

我甚至试过看看Char.ConvertToUtf32,但是这似乎有问题,例如:

var value = "ac";
Run Code Online (Sandbox Code Playgroud)

这个长度为6.那么,我怎么知道一个新角色何时开始呢?例如:

Char.ConvertToUtf32(value, 0)   97  int
Char.ConvertToUtf32(value, 1)   127744  int
Char.ConvertToUtf32(value, 2)   'Char.ConvertToUtf32(value, 2)' threw an exception of type 'System.ArgumentException'   int {System.ArgumentException}
Char.ConvertToUtf32(value, 3)   99  int
Char.ConvertToUtf32(value, 4)   127983  int
Char.ConvertToUtf32(value, 5)   'Char.ConvertToUtf32(value, 5)' threw an exception of type 'System.ArgumentException'   int {System.ArgumentException}
Run Code Online (Sandbox Code Playgroud)

还有:

public static int …
Run Code Online (Sandbox Code Playgroud)

.net c# unicode encoding

8
推荐指数
2
解决办法
2822
查看次数

C#:如何获取字符串的第一个字符?

我们已经有一个关于获取char字符串的第一个16位的问题.

这包括问题代码:

MyString.ToCharArray[0]
Run Code Online (Sandbox Code Playgroud)

并接受答案代码:

MyString[0]
Run Code Online (Sandbox Code Playgroud)

我想有一些用途,但是当字符串包含文本时,我们希望所有人都知道单个16位字符不能容纳一个字符,即使在我们实际意味着"codepoint"的限制意义上.

我是程序员,但不是C#程序员.我只是想帮助在线同事修复这样的错误,以防你认为这是一个太基本的问题.

因此,如果我们在char数组中使用C#中的字符串,以正确的UTF-16编码,可能包括代理对作为第一个字符/代码点,因此可能包含两个chars,我如何获得第一个字符?

(我天真地假设Microsoft为此提供了一个字符串函数,我不必手动检查代理项对.)

c# string unicode utf-16 surrogate-pairs

1
推荐指数
1
解决办法
3026
查看次数

string [0]从字符串中获取第一个字符

我有一个我不明白的问题.这是我的代码:

String input = "3 days ago"
String firstCharacter = input[0].ToString(); //Returns 3
int firstCharacter = (int)input[0];  //Returns 51
Run Code Online (Sandbox Code Playgroud)

为什么它会回归51?

PS:我的代码来自这个帖子:C#:如何获取字符串的第一个字符串?

更多信息:

In case that input = "5 days ago", then int firstCharacter is 53.
Run Code Online (Sandbox Code Playgroud)

c# string casting

-3
推荐指数
1
解决办法
8310
查看次数