How to remove a line and column in a two dimension array?
I have an int array with to dimentions:
int[,] intArray2D = new int[3,3];
I would like to have two methods such as:
int[,] removeLine(int[,] array, int arrayColumnsCount, int lineToRemove){...}开发者_StackOverflow社区
int[,] removeColumn(int[,] array, int arrayColumnsCount, int columnToRemove){...}
So, having the array:
1 2 3
4 5 6
7 8 9
Calling the removeLine method with lineToRemove = 1 I must get the array:
1 2 3
7 8 9
Calling the columnLine method with columnToRemove = 1 I must get the array:
1 3
4 6
7 9
What are your implementation advices?
Thanks
RT
Because arrays aren't intended for situation where you add & remove items, you should use a more appropriate data structure.
LinkedList is the best one to use when you expect there will be lots of adds and removes in the middle or the start of the list.
List works fine when you're only adding and removing from the end.
You'd use this by importing:
using System.Collections.Generic;
and coding:
LinkedList<LinkedList<int>> grid = new LinkedList<LinkedList<int>>()
grid.Add(new LinkedList<int>()); //repeat for each column / row
Array sizes aren't dynamic, so you'd have to create a new array, fill the values you are keeping, and disregard the ones you are removing.
Very basic pseudocode:
removeLine(...) {
create array with 1 less line
loop through lines of original array
if line index == lineToRemove
continue loop
removeColumns(...) {
create array with 1 less column
loop through columns of original array
if column index == columnToRemove
continue loop
精彩评论