为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用字符串数组获取 datagridview 中每个页面的数字流动数字

如何使用字符串数组获取 datagridview 中每个页面的数字流动数字

C#
一只斗牛犬 2023-09-16 20:18:02
我有一个包含 1000 多个项目的字符串数组,我已将其拆分为 4 个单独的数组。我试图将它们按datagridview数字顺序排列,每列可以容纳 28 个项目,每页有四列。每个页面应该看起来像这样:column 1 1-28column 2 29-56column 3 57-84column 4 85-112这将是第 1 页。第 2 页将从第 1 列的编号 113 开始。目前,我已经将字符串数组放入其中,datagridview但数字在每个页面中不能正确流动,但它可以正确地直接向下流动。将大数组分成四个部分:string[] array = new string[listBox1.Items.Count];for (int i = 0; i < listBox1.Items.Count; i++){    array[i] = listBox1.Items[i].ToString();}string[] array2 = array.Take((array.Length / 2).ToArray();string[] array3 = array.Skip((array.Length / 2).ToArray();string[] array4 = array2.Take((array2.Length + 1) / 2).ToArray();string[] array5 = array2.Skip((array2.Length + 1) / 2).ToArray();string[] array6 = array3.Take((array3.Length + 1) / 2).ToArray();string[] array7 = array3.Skip((array3.Length + 1) / 2).ToArray();将数组添加到datagridview:string a = "";for (int i = 0; i < array4.Length; i++){    addData(array4[i], a, array5[i], a, array6[i],a, array7[i],a );}添加数据的函数datagridprivate void addData(string a, string b, string c, string d, string e, string f, string g, string h){    string[] row = { a, b, c, d,e,f,g,h };    dataGridView1.Rows.Add(row);}我想要的结果是在每一页上都有数字流动的数字。
查看完整描述

1 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

下面将数字放入数据表中。您可以将表格设为datagridview1.DataSource = dt;


using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Data;


namespace ConsoleApplication1

{

    class Program

    {

        static void Main(string[] args)

        {

            //create a 1000 strings from numbers starting at 1001

            string[] array = Enumerable.Range(1001, 1000).Select(x => "String : " + x.ToString()).ToArray();


            var pages = array.Select((x,i) => new {str = x, index = i})

                .GroupBy(x => x.index  / 112)

                .Select(x => x.ToArray())

                .ToArray();


            var rows = pages

                .SelectMany(x => x.GroupBy(y => y.index % 28)).Select(y => y.ToArray())

                .ToArray();


            DataTable dt = new DataTable();

            dt.Columns.Add("Col A", typeof(string));

            dt.Columns.Add("Col B", typeof(string));

            dt.Columns.Add("Col C", typeof(string));

            dt.Columns.Add("Col D", typeof(string));



            foreach (var row in rows)

            {

                DataRow newRow = dt.Rows.Add(new object[] { 

                    row[0].str, 

                    (row.Length > 1) ? (object)row[1].str : null,

                    (row.Length > 2) ? (object)row[2].str : null,

                    (row.Length > 3) ? (object)row[3].str : null

                });

            }

        }

    }

}



查看完整回答
反对 回复 2023-09-16
  • 1 回答
  • 0 关注
  • 90 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信