gpt4 book ai didi

c# 包含字符串的一部分

转载 作者:太空狗 更新时间:2023-10-29 18:06:04 27 4
gpt4 key购买 nike

所以我有一个包含 Material 对象的列表。在 Materiel 中,我有 15 个获取和设置方法。我想构建一个搜索方法,循环列表中的所有对象,以及每个 Material 对象中的所有变量。循环部分很简单,但我正在努力处理字符串包含部分。例如,搜索词可以是“acto”,我应该搜索“Tractor”。我试过使用 string-Contains 类,但据我所知,它只检查从位置 0 开始的字符串。因此“Tra”被命中,但“acto”没有被命中。

是否有内置类,还是我应该自己编写一个?

抱歉解释不当。

我的代码。我现在看到我得到了子字符串的命中,还有其他结果:)

    protected void Button_search_Click(object sender, EventArgs e)
{
string searchTerm = TextBox1.Text.ToString().ToLower();

TableRow row;
TableCell cell;

int rowNumber = 1;

foreach (Materiell mat in allItems)
{
if (searchTerm.Contains(mat.itemID.ToString().ToLower()) ||
searchTerm.Contains(mat.manufacturer.ToLower()) ||
searchTerm.Contains(mat.model.ToLower()) ||
searchTerm.Contains(mat.serialNo.ToLower()) ||
searchTerm.Contains(mat.dateProd.ToString().ToLower()) ||
searchTerm.Contains(mat.location.ToLower()) ||
searchTerm.Contains(mat.mainCategory.ToLower()) ||
searchTerm.Contains(mat.subCategory.ToLower()) ||
searchTerm.Contains(mat.dateAcquired.ToString().ToLower()) ||
searchTerm.Contains(mat.price.ToString().ToLower()) ||
searchTerm.Contains(mat.ownerID.ToString().ToLower()) ||
searchTerm.Contains(mat.extra.ToString().ToLower()) ||
searchTerm.Contains(mat.textComment.ToLower()) ||
searchTerm.Contains(mat.active.ToString().ToLower()))
{
row = new TableRow();
row.ID = "row" + rowNumber.ToString();
rowNumber++;

cell = new TableCell();
cell.Text = "<a href=\"#\" class=\"opendiv\">" + mat.itemID.ToString() + "</a>";
row.Cells.Add(cell);

cell = new TableCell();
cell.Text = mat.manufacturer.ToString();
row.Cells.Add(cell);

cell = new TableCell();
cell.Text = mat.model.ToString();
row.Cells.Add(cell);

cell = new TableCell();
cell.Text = mat.serialNo.ToString();
row.Cells.Add(cell);

cell = new TableCell();
cell.Text = mat.dateProd.ToString();
row.Cells.Add(cell);

cell = new TableCell();
cell.Text = mat.location.ToString();
row.Cells.Add(cell);

cell = new TableCell();
cell.Text = mat.mainCategory.ToString();
row.Cells.Add(cell);

cell = new TableCell();
cell.Text = mat.subCategory.ToString();
row.Cells.Add(cell);

cell = new TableCell();
cell.Text = mat.dateAcquired.ToString();
row.Cells.Add(cell);

cell = new TableCell();
cell.Text = mat.price.ToString();
row.Cells.Add(cell);

cell = new TableCell();
cell.Text = mat.ownerID.ToString();
row.Cells.Add(cell);

cell = new TableCell();
cell.Text = mat.extra.ToString();
row.Cells.Add(cell);

cell = new TableCell();
cell.Text = mat.ownDefData.ToString();
row.Cells.Add(cell);

cell = new TableCell();
cell.Text = mat.textComment.ToString();
row.Cells.Add(cell);

cell = new TableCell();
cell.Text = mat.active.ToString();
row.Cells.Add(cell);

Table1.Rows.Add(row);
}
}
}

最佳答案

"some string".Contains("str") 将返回 true,您是否遇到区分大小写的问题?

如果是这样你可以使用这个:

public static bool Contains(this string source, string toCheck, StringComparison comp) {
return source.IndexOf(toCheck, comp) >= 0;
}

string title = "STRING";
bool contains = title.Contains("string", StringComparison.OrdinalIgnoreCase);

(摘自Case insensitive 'Contains(string)')

关于c# 包含字符串的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9923158/

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