2015-12-13 57 views
-1

我正在写使用用于存储数据的二维数组网页排名算法的列表。 1意味着一个页面有链接到另一个页面,0意味着它没有。我的问题是: 有没有办法到2 d int[,]矩阵转换为对象的列表。是否有可能到2-d数组转换为对象

例如我的矩阵如下所示:

int[,] matrix = new int[2, 2];  
matrix[0,0] = 0  
matrix[0,1] = 1  
matrix[1,0] = 1  
matrix[1,1] = 1; 

它产生的数组:

0 1  
1 0 

我想要做的就是这个矩阵转换成PageList一个对象:

public class Page{   
    public string PageName {get;set;} 
    public List<Page> ShowsToPages {get; set;} 

    public Page(){ this.ShowsToPages = new List<Page>();} 
} 

在这种scenarion我想有一个包含2页的。每个页面对象将有一个列表,包含它显示了网页的所有引用。

+1

是的,有一个矩阵转换为对象 –

+0

的列表中的每个页面都应该有它指向的页面引用列表的方式。例如,如果我们有一个矩阵: 第一页对象应该具有尺寸1的列表,包含它是指向其他页面的引用。 第二页也应该有大小为0的名单,不包含引用,因为它没有指向任何东西。 –

回答

1
var pages = Enumerable.Range(0, array.GetLength(0)) 
    .Select(i => { var page = new Page(); 
    page.ShowsToPages.AddRange(Enumerable.Range(0, array.GetLength(1)) 
    .Where(j => array(i, j) != 0)); return page; }).ToList(); 
相关问题