c# - 将一维数组显示为行和列

标签 c# arrays algorithm

我有一个由品牌名称组成的一维数组,我想以一种格式显示它,其中列大小固定为“3”,行号随着数组大小的增加而扩展。比如数组中有11个品牌,我想这样显示;

X X X
X X X
X X X
X X

这是我尝试实现所需逻辑的嵌套 for 循环:

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>
}

有什么方法可以改进这个算法吗?谢谢。

最佳答案

是这样的吗?

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”项。

关于c# - 将一维数组显示为行和列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57693105/

相关文章:

php - 数组返回空值

c# - 如何预测船舶与人体在二维影响范围内的相遇

c# - 如何正确捕获调用存储过程的返回值

c# - 紧急错误cs0542成员名称不能与它们的封闭类型相同

c# - 两个 Nuget 包引用了相互冲突的 react 库

c# - 以编程方式查找sql​​ server的所有实例

c++ - C++以相同方式排列两个 vector

ios - 将 Array 与 Osmosis 结合使用

Java:实现 hashCode() 以确保 int 数组的排列始终返回相同的哈希值

c++ - 带回溯的 Peg Solitaire 解决方案