首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将一维数组显示为行和列

将一维数组显示为行和列
EN

Stack Overflow用户
提问于 2019-08-28 13:02:58
回答 1查看 206关注 0票数 3

我有一个一维数组,它由品牌名称组成,并希望以列大小固定为"3“的格式显示,并且随着数组大小的增长,行号正在扩展。例如,如果数组中有11个品牌,我想这样显示它;

代码语言:javascript
复制
X X X
X X X
X X X
X X

下面是嵌套的for循环,我试图实现所需的逻辑:

代码语言:javascript
复制
int brandCount = Model.CampainBrands.Count();
int colLength = brandCount < 3 ? brandCount : 3; // Toplam marka sayısının 3'ün altında olması durumunu güvenceye alır
int rowLength = brandCount / colLength + (brandCount % colLength != 0 ? 1 : 0);
int counter = 0;
for (int i = 0; i < rowLength; i++)
{
    <div class="row">
    @for (int j = 0; j < colLength && counter < brandCount; j++, counter++)
    {   
        var item = Model.CampainBrands[counter];
        <div class="col-md-4">
            <a href="@Url.Action("List","Campain",new {brandCode = item.Code})">
                <div class="card" style="width: 5rem;">
                    <img class="card-img-top" src="@item.ImageUrl" height="60px" width="60px" />
                    <div class="card-body">
                        <p class="card-text">@item.Name</p>
                    </div>
                </div>
            </a>
        </div>
    }
    </div>
}

有什么办法来改进这个算法吗?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-28 13:24:55

像这样吗?

代码语言:javascript
复制
var numbers = Enumerable.Range(1, 11).ToList();
const int rowlength = 3;

for (int i=0; i<numbers.Count; i=i+rowlength)
{
    Console.Write("<tr>");
    for (int j=i; j<numbers.Count && j<i+rowlength; j++)
    {
        Console.Write(numbers[j] + " ");    
    }
    Console.WriteLine("</tr>");
}

外部循环("i")一次遍历列表3,并在行周围添加"tr“标记。

内环("j")使用列表的下面3项,除非没有足够的剩余项。这些将是"td“项目。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57693105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档