2012-06-14 2 views
3

저는 C#을 처음 접했습니다. 어떻게 다차원 배열로 작업합니까? WPF도 사용하고 있습니다.WPF에서 이러한 레코드 및 필드를 어떻게 나타내야합니까?

여기에 내가 뭘하려고 오전입니다, 내 문제에 더 명확하게하려면 :

을 나는 약 200 '기록'을 저장해야 배열을 가지고 있으며 각 레코드는 사용자가 입력 한 세 개의 필드를 가지고 텍스트 상자를 사용하여. 그래서 나는 이것이 당신이 배열을 설정 얼마나 생각 : 그 배열에 사용자가 버튼을 명중 할 때마다 새로운 '기록'을 추가하기 위하여려고하고있다

string[,] Properties = new string[500, 3]; 

. 나는 당신이 그것을 어떻게 할 것인지에 관해서는 단서가 없다. 저는 일종의 카운터를 세울 필요가 있다고 확신합니다.

또한 배열의 값을 업데이트하고 삭제해야합니다. 어떤 도움을 주시면 감사하겠습니다. 고맙습니다.

+1

배열을 사용하지 말고 클래스와 목록을 사용하십시오. OOP를 받아들이십시오! – Ryan

+0

http://msdn.microsoft.com/en-us/library/2yd9wwz4%28v=vs.100%29.aspx –

+0

일반적으로 각 "레코드"는 자체 클래스에 캡슐화해야합니다.그런 다음 새로운 레코드를'List '(여기서 T는 클래스의 이름입니다.)에 추가 할 수 있습니다. – dlev

답변

4

다른 사람들이 제안한 내용을 요약 해 보겠습니다.

(이 예 오히려 단순한입니다) 귀하의 기록에 대한 클래스를 만듭니다 : 목록에 새 레코드를 추가

List<MyRecord> theList; 

사용 theList.Add :

class MyRecord 
{ 
    public string Property1 {get; set; } 
    public string Property2 { get; set; } 
    public string Property3 { get; set; } 
} 

그런 다음 레코드의 목록을 작성 .

+0

정말 고마워요! – JLott

+0

당신은 theList.Add. 그러나 실제로 텍스트 상자에있는 값을 목록에 어떻게 입력합니까? – JLott

+0

다른 질문에 대한 문제입니다. 그렇게하기 전에 데이터 바인딩에 대해 조금 읽어야합니다. – zmbq

3

배열에 쉽게 추가 할 수 없습니다. 유일한 옵션은 다른 행으로 새 배열을 할당하고, 모든 이전 항목을 복사 한 다음 마지막 행에 새 데이터를 넣는 것입니다.

마찬가지로 행을 삭제하는 : 당신은 "최대"삭제 된 행 다음의 모든 항목을 이동하고 배열을 짧게해야 할 것이다. 새로운 배열을 할당하고 모든 항목을 복사하는 것으로 귀결됩니다.

는 일반적으로 배열은 낮은 수준의 구조입니다 거의 C#에서 개발자에 의해 사용되어서는 안된다 :-) 위를 참조하십시오. 특별히 변경할 수있는 컬렉션을 모델링하려는 경우 변경 가능한 컬렉션을 원하면 컬렉션을 사용하십시오. 예를 들어 List<Thing>입니다. Thing은 레코드를 구성하는 세 가지 속성을 포함하는 클래스입니다.

컬렉션 클래스는 항목 삽입 및 추가, 임의의 위치에서 항목 제거 등과 같은 모든 일반적인 경우를 처리합니다. WPF에 대해 언급 한 이후로 WPF의 데이터 바인딩 및 템플릿 기능을 사용하면 매우 효과적입니다. UI에 데이터를 표시합니다.

2

항목

properties.AddLast({"a","b","c"}); 

삭제/당신은 아마 목록 대신

LinkedList<String[]> properties = new LinkedList<String[]>(); 

를 사용해야하고 추가 할 수

배열을 통해 목록을 사용하는 장점은 임의의 위치에서 삭제하는 요소가 있다는 것이다 쉽게 :)

관련 문제