如何映射数组/列表和数据表/列表c#

时间:2016-01-12 03:48:57

标签: c# arrays datatable mapping

我现在有一个数组/列表[" a"," b"," c"," d",&#34 ; e"," f"],现在我有一个数据表dt:

c1   c2  
 c   10  
 e   20  

我想将dt与数组进行比较并返回结果,如

a  0/null  
b  0 /null  
c  10  
d  0/null  
e  20  
f  0/null  

我不知道如何从映射或任何程序开始,我尝试了一个循环,但我得到了6*2 = 12个项目 有人可以给出一些如何做到这一点的指导方针吗? 我试图声明一个布尔数组,如果我可以在dt中找到A中的元素,那么在布尔数组中添加一个true,否则添加false。但是我在布尔数组中有12个元素而不是6并且位置都是错误的

 if (dt.Rows.Count > 0)
        {
            for (int x = 0; x < A.Length; x++)
            {
                for (int t = 0; t < dt.Rows.Count; t++)
                {
                    string type = dt.Rows[t]["Sponsorship_Type"].ToString();
                    if (A[x] == type)
                    {
                        checks.Add(true);
                    }
                    else
                    {
                        checks.Add(false);
                    }
                }
            }
        }

1 个答案:

答案 0 :(得分:0)

如果您希望输出完全如您在问题中显示的那样;

Dictionary<string, string> comparison = new Dictionary<string, string>();

foreach (string item in list)
{
    DataRow[] found = dt.Select(string.Format("C1 = '{0}'", item));

    if (found == null || found.Count().Equals(0))
        comparison.Add(item, "0/null");
    else
        comparison.Add(item, found[0]["C2"].ToString());
}

list是包含["a","b","c","d","e","f"]的列表,输出位于comparison字典中。

The Output