0

通过 Web 表单上传文件并将其内容解析到列表中如何在解析 C.MN、C.LN、C.Val 时允许 null 或空值这三个是这样声明的公共数据类型

Namespace datatypes

       Public class Uploads
  {

        Public long Mn  {get; set;}
        Public int LN     { get;set    }
         Public int Val    {Get;Set}
    }

  List<Uploads> CDU = new List<Uploads>();
                string[] fields;

                string data = read.ReadLine();
                while ((data = read.ReadLine()) != null)
                {
                    if (data.Length != 0)
                    {
                        Uploads C = new Uploads();
                        fields = data.Split(',');
                        C.LN = Convert.ToInt32(fields[0]);
                        C.MN = Convert.ToInt64(fields[1]);                           
                        C.Val = Convert.ToInt32(fields[2]);
                        CDU.Add(C);
4

2 回答 2

2

简而言之,您必须使用可为空的值类型,例如

public class Uploads
{
    public long? Mn { get; set; }
    public int? LN { get; set; }
    public int? Val { get; set; }
}

当然,您需要确定是给它们一个值还是将它们保留为空,大概基于字符串是否为空。

例如:

C.LN = fields[0] == "" ? (int?) null : Convert.ToInt32(fields[0]);

要不就:

if (fields[0] != "")
{
    C.LN = Convert.ToInt32(fields[0]);
}

顺便说一句,这些名称是完全无法维护的。六个月后,您知道它们的含义吗?

于 2012-11-27T14:35:56.957 回答
1

像这样使用可为空的类型:

public class Uploads
{
    public long? Mn { get; set; }
    public int? LN { get; set }
    public int? Val { get; set }
}

有关将字符串解析为可为空值的信息,请参见此处

于 2012-11-27T14:36:43.697 回答