Guid应包含32位数字和4个破折号(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)。错误?

时间:2016-01-08 06:35:29

标签: c# asp.net-mvc-4 collections

我需要将这六个字段保存在同一列中,但不能保存在同一行和同一个单元格中。每个字段都有默认GUID。所以我决定将默认guid放在一个列表中,并将字段放在一个列表中,然后调用该特定列表中我们想要的那个对象。

       ArrayList Alist = new ArrayList();
        {
            Alist.Add("FD713788-B5AE-49FF-8B2C-F311B9CB0CC4");
            Alist.Add("64B512E7-46AE-4989-A049-A446118099C4");
            Alist.Add("376D45C8-659D-4ACE-B249-CFBF4F231915");
            Alist.Add("59A2449A-C5C6-45B5-AA00-F535D83AD48B");
            Alist.Add("03ADA903-D09A-4F53-8B67-7347A08EDAB1");
            Alist.Add("2F405521-06A0-427C-B9A3-56B8931CFC57");
        }

        ArrayList objValue = new ArrayList();
        {
            objValue.Add(viewmodel.TinNo);
            objValue.Add(viewmodel.CstNo);
            objValue.Add(viewmodel.PanNo);
            objValue.Add(viewmodel.CinNo);
            objValue.Add(viewmodel.ExciseRegNo);
            objValue.Add(viewmodel.ServiceTaxNo);
        }

   var TaxInfoTaxFiledclassobj = new TaxInfoTaxFiled()
        {

            TaxInfoTaxFieldID = TaxInfoTaxFieldObj,
            TaxFieldID = new Guid(Alist .ToString ()),
            FieldValue = objValue.ToString(),
        };

一切正常 但是在TaxFieldID中,它显示了从列表中计算出的计数,但保存时显示的是以下错误

enter image description here

我该怎么办?

3 个答案:

答案 0 :(得分:2)

您正试图传递ArrayList作为Guid。在这一行:

TaxFieldID = Guid.Parse(Alist.ToString())

您只需选择要解析的ArrayList元素之一。此外,您可以使用List<Guid>完全消除此问题。

List<Guid> guidList = new List<Guid>();
guidList.Add(new Guid("DDE4BA55-808E-479F-BE8B-72F69913442F"));

...

TaxFieldID = guidList[0]; // obviously, select the appropriate GUID

答案 1 :(得分:1)

Guid.Parse()能够解析GUID。 Alist.ToString()不应该是GUID。

修改

我想你正在寻找类似的东西 -

var listFiled = new List<TaxInfoTaxFiled>();
for(var item = 0; item < objValue.Count ; item++)
{
    listFiled.Add(new TaxInfoTaxFiled
    {

        TaxInfoTaxFieldID = TaxInfoTaxFieldObj,
        TaxFieldID = new Guid(Alist[item]),
        FieldValue = objValue[item]
    });
}

答案 2 :(得分:0)

AList是一个数组,而不是Guid

您必须对Guid.Parse

的条目AList进行操作

这样的东西
foreach(string g in AList)
{
     Guid guid = Guid.Parse(g);
     // Guid guid = new Guid(g) also works
}