Así que tengo una lista con Materiel-objects. En Materiel tengo 15 métodos get y set. Quiero construir un método de búsqueda que bucles todos los objetos en la lista, y todas las variables en cada objeto Materiel. La parte de bucle es bastante fácil, pero estoy luchando con la cuerda-contiene-parte. El término de búsqueda podría ser, por ejemplo, "acto", y debería obtener un hit para "Tractor". He intentado utilizar la clase cadena-Contiene, pero hasta donde sé, solo verifica que la secuencia comience en la posición 0. Entonces "Tra" recibe un golpe, pero no "acto".C# contiene parte de la cadena
¿Hay alguna generación en las clases, o debería programar yo mismo?
Disculpe por la mala explicación.
Mi código. Ahora veo que me da golpes de la subcadena, sino también otros resultados :)
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);
}
}
}
Podría publicar un fragmento de código, porque de acuerdo a la documentación "acto" debería llegar en "Tractor": http://msdn.microsoft.com/en-us/library/dy85x1sa(v=vs.100).aspx – LexyStardust
'" Tractor ".Contains (" acto ")' debe devolver 'true'. Es posible que desee publicar algo de su código para que podamos ver lo que ha intentado hasta ahora y dónde puede estar yendo mal. – Rawling
Gah. Ninguna de las respuestas aborda el punto. Mira Lucene.NET, tal vez (parece que estás buscando la búsqueda/indexación de texto completo; ¿es quizás una aplicación de tipo biblioteca?) – sehe