double [,], int [], bool []… 매트릭스, 벡터 조작 확장 C#
문제
이와 같은 내용 (빠른 프로토 타이핑 및 라이브러리 통합)이 필요합니다 (일반적인 배열에 대한 확장)
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 );
}
}
그런 다음 추론되는 유형 매개 변수에 의존 할 수 있습니다.
제휴하지 않습니다 StackOverflow