gpt4 book ai didi

c# - 为什么包含值时 Contains(value) 等于 false?

转载 作者:太空宇宙 更新时间:2023-11-03 21:10:23 24 4
gpt4 key购买 nike

这是数据、一个字符数组(板)和一个字符数组列表,这些字符数组由板中不同的三个字符序列组成。

public static char[] board = { 'Q', '-', '+',
'A', '-', 'D',
'+', 'X', 'C' };

static List<char[]> dalist = new List<char[]> {
new char[3] { board[3], board[4], board[5] },
new char[3] { board[0], board[4], board[8] },
new char[3] { board[2], board[4], board[6] },
new char[3] { board[1], board[4], board[7] },

new char[3] { board[0], board[1], board[2] },
new char[3] { board[6], board[7], board[8] },
new char[3] { board[0], board[3], board[6] },
new char[3] { board[2], board[5], board[8] }
};

static void Main(){

foreach (var item in dalist[2])
{
Console.WriteLine(item);
}
// This returns + - + as expected


Console.WriteLine(dalist[2].ToString().Contains("-"));
// This returns false

}

为什么 .Contains 方法意外返回 false?

最佳答案

daList[2] 是一个 char[]。当您在数组上调用 ToString() 时,它不会将数组的所有元素连接成一个字符串,它会返回类名,在本例中为 System.Char[] 。如果您执行 Console.WriteLine(daList[2].ToString()),您可以自己看到这一点。由于文字字符串 "System.Char[]" 不包含连字符,因此 daList[2].ToString().Contains("-") 返回 false。

如果您想从字符数组中创建一个字符串,可以使用一个字符串构造函数。我认为这是您真正想要的:

Console.WriteLine(new String(dalist[2]).Contains("-"));

fiddle :https://dotnetfiddle.net/jLpJLV

关于c# - 为什么包含值时 Contains(value) 等于 false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38113827/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com