"스마트 방식으로"목록 상자에있는 항목을 삭제하려고합니다. 내 문제에 대한 대안을 찾았지만 마음에 들지 않습니다.목록 상자에서 정규식을 사용하여 항목을 삭제하는 방법
내 프로그램은 매트릭스 계산기입니다. 모든 행렬은 사전에 있으며 그래픽 인터페이스의 목록 상자에 "인쇄"됩니다.
대신 목록 상자의 모든 항목을 삭제하고 사전에서 선택한 행렬을 제거한 다음 목록 상자에 모든 행렬을 다시 추가하십시오.
내 문제는 삭제하려는 항목의 색인을 찾아 삭제해야하지만, index
은 항상 -1
과 같습니다. 나는 해결책을 찾는다. 나는 방법을 재정의 할 필요가 있다는 것을 발견했다. Equals()
, GetHashCode()
그리고 아마 ToString()
. 더 나은 해결책이 있는지 궁금합니다. 내 정규식을 알고 싶다면
public static String Delete()
{
String matrix = matches[0].Groups[2].ToString();
if (Calculatrice.listMatrix.ContainsKey(matrix))
{
Matrix m = Calculatrice.listMatrix[matrix];
int index = Calculatrice.mainWindow.ListBox_display.Items.IndexOf(m);
Calculatrice.mainWindow.ListBox_display.Items.RemoveAt(index);
Calculatrice.listMatrix.Remove(matrix);
return "Done!\n";
}
throw new Exception("The matrix does not exist.\n");
}
이 그것입니다 private static Regex delete_rgx = new Regex(@"^(delete)\((\w+)\)$");
나는 StackOverflow의 커뮤니티에 새로 온 사람, 내가 만드는 방법에 대해도 내 문제에 대한 모든 제안을들을 것이다 더 나은 질문, 설명 등
이 ** 객체가 ** listMatrix에서, 예를 들어 ListBox_display.Items과 동일해야합니다 사용하여 목록 상자를 채우는 시도 동일한 참조/메모리 주소가 있어야합니다. (복사 또는 복제품이 아님) 위의 코드는 작동합니다 – DrKoch