使用C#,LINQ – 想要获取列名和数据值

我想以一种相当通用的方式显示一行的内容; 我将对几个不同的表使用这种技术。 输出将是纯文本(在RichTextBox中),如下所示:TABLE_NAME PROPNUM:xxxxxxx销售日期:mm / dd / yyyy …最后COL:lastvalue

(a)我知道每个表的列名,但实际上不想对它们进行硬编码;
(b)如果桌子结构发生变化,我希望它足够灵活。

我已经弄清楚如何遍历列名 – 但不知道如何引用相应的数据值!

var arQuery = (from acp in ... select acp).FirstOrDefault(); // one & only one match foreach (var colName in arQuery.GetType().GetProperties()) ... 

colName现在依次获取每个列的名称; 那么我如何在arQuery中为该列引用相应的值? (注意:我非常高兴能够把它转过来,并遍历每一列的值……如果我知道如何获得每个值的列名…)(是的,我有点新的C#和LINQ …请好心!)

谢谢!

这可能是这样的:

 //long way string sline=arQuery.GetType().Name + " "; foreach (PropertyInfo info in arQuery.GetType().GetProperties()) { if (info.CanRead) { sline += info.Name+": "+info.GetValue(arQuery, null) + " "; } } //using LINQ without the for loop sline += string.Join(" ", arQuery.GetType().GetProperties().Where(i=>i.CanRead).Select(i=> ""+i.Name+": "+i.GetValue(arQuery, null))); 

希望没有太多错别字;)