如何遍历读取实体类的变量名

TUANYUANYUAN 2020-03-26 10:46:56
实体类:
public class TestObj
{
public string A1 { get; set; }
public string A2 { get; set; }
public string A3 { get; set; }
public string A4 { get; set; }
public string A5 { get; set; }
}
读取数据库值后,赋值到LIST,得到Listt数据集合。

目前,想遍历,就是类似这样:Listt[i].A1,其中的1可以循环,就是循环读取其中实体类中的变量。(为了方便封装)

试了下,Listt[i].A+i.ToString(),提示:
"TestObj”未包含“A”的定义,并且找不到可接受第一个“TestObj”类型参数的可访问扩展方法“A"

怎么做,谢谢!
...全文
312 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
特性了解下,当然,还是要用到反射
正怒月神 2020-03-27
  • 打赏
  • 举报
回复
引用 5 楼 TUANYUANYUAN 的回复:
[quote=引用 3 楼 正怒月神 的回复:] 然而我觉得这种,没必要去封装。
因为有很多类似的报表需要做,类似的实体类,循环后赋值给excel文件,所以想封装。[/quote] 那我觉得用datatable来更方便
TUANYUANYUAN 2020-03-27
  • 打赏
  • 举报
回复
引用 4 楼 撞墙的蝙蝠 的回复:
虽然脱裤子放屁但是还是满足楼主给你个简单的方法:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
List<Test> ListT = new List<Test>();
private void Form1_Load(object sender, EventArgs e)
{
for (int i = 0; i < 4; i++)
{
Test Ts = new Test();
Ts.A1 = "我是A1值是" + i;
Ts.A2 = "我是A2值是" + i;
Ts.A3 = "我是A3值是" + i;
Ts.A4 = "我是A4值是" + i;
ListT.Add(Ts);
}
}

private void button1_Click(object sender, EventArgs e)
{
richTextBox1.Text = "";
List<string> ListString = ListZh(ListT);
foreach (var item in ListString)
{
for (int i = 0; i < item.Split('|').Length; i++)
{
richTextBox1.Text += item.Split('|')[i];
richTextBox1.Text += "\r\n";
}
}
}
public List<string> ListZh(List<Test> ListTs)
{
List<string> ListString = new List<string>();
foreach (var item in ListTs)
{
string Pj = "";
Pj += item.A1+"|";
Pj += item.A2 + "|";
Pj += item.A3 + "|";
Pj += item.A4;
ListString.Add(Pj);
}
return ListString;
}
}
}

不是仅仅为了取变量名,是为了获取的数据集合封装起来。
TUANYUANYUAN 2020-03-27
  • 打赏
  • 举报
回复
引用 1 楼 真相重于对错 的回复:
msdn baidu google 搜索一下反射。

谢谢,我查下。
TUANYUANYUAN 2020-03-27
  • 打赏
  • 举报
回复
引用 3 楼 正怒月神 的回复:
然而我觉得这种,没必要去封装。

因为有很多类似的报表需要做,类似的实体类,循环后赋值给excel文件,所以想封装。
撞墙的蝙蝠 2020-03-26
  • 打赏
  • 举报
回复
虽然脱裤子放屁但是还是满足楼主给你个简单的方法:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        List<Test> ListT = new List<Test>();
        private void Form1_Load(object sender, EventArgs e)
        {
            for (int i = 0; i < 4; i++)
            {
                Test Ts = new Test();
                Ts.A1 = "我是A1值是" + i;
                Ts.A2 = "我是A2值是" + i;
                Ts.A3 = "我是A3值是" + i;
                Ts.A4 = "我是A4值是" + i;
                ListT.Add(Ts);
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            richTextBox1.Text = "";
            List<string> ListString = ListZh(ListT);
            foreach (var item in ListString)
            {
                for (int i = 0; i < item.Split('|').Length; i++)
                {
                    richTextBox1.Text += item.Split('|')[i];
                    richTextBox1.Text += "\r\n";
                }
            }
        }
        public List<string> ListZh(List<Test> ListTs)
        {
            List<string> ListString = new List<string>();
            foreach (var item in ListTs)
            {
                string Pj = "";
                Pj += item.A1+"|";
                Pj += item.A2 + "|";
                Pj += item.A3 + "|";
                Pj += item.A4;
                ListString.Add(Pj);
            }
            return ListString;
        }
    }
}
正怒月神 2020-03-26
  • 打赏
  • 举报
回复
然而我觉得这种,没必要去封装。
正怒月神 2020-03-26
  • 打赏
  • 举报
回复
反射也可以, 用datatable接收循环也是个方案。
真相重于对错 2020-03-26
  • 打赏
  • 举报
回复
msdn baidu google 搜索一下反射。

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧