문제

이와 같은 내용 (빠른 프로토 타이핑 및 라이브러리 통합)이 필요합니다 (일반적인 배열에 대한 확장)


double[] d;
d.SetRow(1,{ 1.1 , 2.0 ,3.3});
var r = d.GetRow(1);
d = d.AppendRight(new int[]{1,2,3});
...

어디서나 그런 것이 있습니까? 누구든지 그것을 구현 한 사람이있을 수 있으므로 내가 필요하지 않아야합니까?

도움이 되었습니까?

해결책

이것은 자신을 쓰기가 너무 어렵지 않아야합니다.

매우 조심해야 할 것은 배열을 속성으로 편집하는 방법입니다.

(매우 거친 테스트 코드이지만 아이디어를 제공해야 함) : :

public class ArrayRow<T> {
    //add your own ..ctor etc

    T[,] matrix; //don't make this public see http://msdn.microsoft.com/en-us/library/k2604h5s.aspx
    public int Index { get; private set; }

    //note that this will be a copy
    public T[] GetValues() {
        T[] retval = new T[matrix.GetLength(1)];
        for ( int i = 0; i < retval.Length; i++ )
           retval[i] = matrix[Index, i];

        return retval;
    }

    public void SetValues(T[] values)
    //..and so on, you get the idea
}

그런 다음 배열을 확장합니다.

public static ArrayExtensions {

    public void SetRow<T> ( this T[,] matrix, int rowIndex, T[] values ) {
        //check rowIndex in range and array lengths match
    }

    public ArrayRow<T> GetRow<T> ( this T[,] matrix, int rowIndex ) {
        //check rowIndex in range
        return new ArrayRow<T> ( matrix, rowIndex );
    }
}

그런 다음 추론되는 유형 매개 변수에 의존 할 수 있습니다.

다른 팁

살펴보십시오 Math.net. 오픈 소스 수학 도서관입니다. 당신은 아마 당신이 필요한 것을 찾을 것입니다.

그들은 이것의 끝에 매트릭스를 사용하는 예제가 있습니다. 페이지.

Python 지원과 같은 언어는 혼합 유형의 목록입니다. Ironpython 스크립트를 작성한 다음 C# 응용 프로그램에서 호출 할 수 있습니다. 따르다 이 링크 앱에서 Ironpython 스크립트를 호출하는 방법을 확인하십시오.

나는 썼다 매트릭스 확장 C# 라이브러리를 테스트하여 확장 기반 코드 생성 설계.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top