Мне нужно реализовать кнопку поиска, которая будет сравнивать значение из моего TextBox
со значениями в массивах и, если они совпадают, возвращает индекс, в противном случае возвращает -1
. Я уже реализовал случайные массивы double
и int
, а также весь интерфейс и кнопки. Необходимо использовать IComparable
и CompareTo()
, но я не знаю, как это реализовать. Я пытался реализовать метод Search
, но он не работает, я не знаю, как вызвать его в обработчике событий SearchButton_Click
.
Это то, что у меня есть:
public partial class MainWindow : Window
{
int[] numb = new int[6];
double[] numb2 = new double[6];
public MainWindow ()
{
InitializeComponent ();
}
//Create Int
private void Button_Click (object sender, RoutedEventArgs e)
{
resultsBox.Items.Clear ();
resultsBox.Items.Add ("Index Value\n");
Random rnd = new Random ();
for (int i = 0; i < 6; i++) {
numb[i] = rnd.Next (0, 999);
string m = i.ToString () + "\t" + numb[i].ToString ();
resultsBox.Items.Add (m);
}
}
//Create Double
private void CreateDouble_Click (object sender, RoutedEventArgs e)
{
resultsBox.Items.Clear ();
resultsBox.Items.Add ("Index Value\n");
Random rnd = new Random ();
for (int i = 0; i < 6; i++) {
numb2[i] = Math.Round (rnd.NextDouble () * (999), 2);
string m = i.ToString () + "\t" + numb2[i].ToString ();
resultsBox.Items.Add (m);
}
}
//Search
private void SearchButton_Click (object sender, RoutedEventArgs e) { }
static int Search<T> (T[] dataArray, T searchKey) where T : IComparable<T>
{
//Iterate through the array.
for (int iter = 0; iter < dataArray.Length; iter++) {
//Check if the element is present in the array.
if (dataArray[iter].CompareTo (searchKey) == 0) {
//Return the index if the element is present in the array.
return iter;
}
}
//Otherwise return the index -1.
return -1;
}
}
Спасибо!