Я использую класс, который содержит значение цвета и значение индекса и с помощью которого я формирую столбец
Class ColorWithIndex
{
System.Drawing.Color Color;
Int Index;
public ColorWithIndex(System.Drawing.Color color, Int index)
{
Color = color;
Index = index;
}
}
DataTable dataTable = New DataTable();
dataTable.Columns.Add("ColorColumn", typeOf(ColorWithIndex));
dataTable.Rows.Add(new ColorWithIndex(Color.Red, 1));
dataTable.Rows.Add(new ColorWithIndex(Color.Green, 2));
dataTable.Rows.Add(new ColorWithIndex(Color.Blue, 3));
Так что я могу иметь запрос, как.
ColorWithIndex greenOne = new ColorWithIndex(Color.Green, 2);
DataRow[] _queried = dataTable.Select("ColorColumn = " + greenOne);
0
Garuda prasad K
17 Авг 2019 в 11:55
2 ответа
Лучший ответ
DataTable.Select ( string) метод не может искать произвольные типы.
Реализуйте метод ToString
в классе ColorWithIndex
. Например:
public override string ToString()
{
return Color.Name + " " + Index;
}
Затем используйте функцию Convert при поиске:
dataTable.Select("CONVERT(ColorColumn, System.String) = '" + greenOne + "'")
1
Alexander Petrov
17 Авг 2019 в 12:06
Вы могли сделать:
DataRow[] _queried = dataTable.Select(t => t.Color == greenOne.Color && t.Index == greenOne.Index);
0
skymon
17 Авг 2019 в 09:08
Похожие вопросы
Новые вопросы
c#
C# (произносится как «see Sharp») — это высокоуровневый мультипарадигменный язык программирования со статической типизацией, разработанный Microsoft. Код C# обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, которое включает в себя .NET, .NET Framework, .NET MAUI и Xamarin среди прочих. Используйте этот тег для ответов на вопросы о коде, написанном на C#, или о формальной спецификации C#.