【发布时间】:2021-02-14 04:41:54
【问题描述】:
我有一个从字符串字段接收字符串值的类的属性。我需要检查属性的字符串值的前两个 char 值是否与数组中一组字符串的前两个 char 值相等或不同。然后如果没有匹配,我需要替换属性接收到的字符串的前 2 个字符
因此,在我的例子中:我决定使用属性 BookID(来自类 Book)从该属性接收的字符串中读取第一个字符,并进行比较它与数组 categoryCodes 中每个字符串的第一个字符。如果第一个字符都不匹配(这是我卡住的地方),我需要将属性 BookID 具有的字符串的前 2 个字符替换为 'M ' 和我'。老实说,我遇到了一个完全不理解的错误,并花了几个小时试图解决它,但我不知道。 帮助!求救
class Book
{
public static string[] categoryCodes = {"CS", "IS", "SE", "SO", "MI"};
public static string[] categoryNames = { "Computer Science", "Information System", "Security", "Society", "Miscellaneous" };
private string bookId;
private string categoryNameOfBook;
public string BookTitle { get; set; }
public int NumOfPages { get; set; }
public double Price { get; set; }
public string BookID
{
get { return bookId; }
set
{
bookId = value;
CategoryCheckSet();
}
}
public string CategoryNameOfBook
{
get { return categoryNameOfBook; }
}
private void CategoryCheckSet()
{
if (BookID[0] != categoryCodes[0][0]
&& BookID[0] != categoryCodes[1][0]
&& BookID[0] != categoryCodes[2][0]
&& BookID[0] != categoryCodes[2][0]
&& BookID[0] != categoryCodes[3][0])
{
BookID[0] = categoryCodes[4][0]; //ERROR HERE: BookID[0], MESSAGE: Property 'string.this[int]' cannot be assigned to -- it is read only
}
}
}
我在这里做错了什么? 我可以仅通过使用属性本身来访问 Property 内的 string 吗? 如何替换 Property 接收的 string 中的特定字符?
提前谢谢你。
【问题讨论】:
-
你可能有一个 XY 问题.....
-
@MitchWheat 我不明白你的评论。 'XY' 问题......??
-
BookID 不是数组,我处理它的想法类似于
string temp = BookID; BookID = $"{categoryCodes[4][0]}{temp.Substring(2)}"您也可以考虑将 BookID[0] 更改为 BookID.Substring(0,2)
标签: c# arrays properties char