首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C# 淘选LIst对象数据,将筛选的数据填充到另一个list对象,

2013-05-02 
C# 筛选LIst对象数据,将筛选的数据填充到另一个list对象,急~~~页面是四个多选按钮,传到后台的是布尔值,后

C# 筛选LIst对象数据,将筛选的数据填充到另一个list对象,急~~~
页面是四个多选按钮,传到后台的是布尔值,后台根据四个布尔值进行筛选LIst对象,的然后将其筛选的数据填充到另一个list对象返回给页面,我自己写的太复杂了,请大家帮我看看有什么别的方法没有,谢谢!


  public List<SysDisk> DeserializeList(bool Ready, bool Failed, bool Online, bool Other)
    {
        string path = OutFile + @"\Disk.bin";
        IFormatter formatter = new BinaryFormatter();
        FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read);
        fs.Seek(0, 0);
        infoList = formatter.Deserialize(fs) as List<SysDisk>;//拿到数据的list

        List<SysDisk> DiskList = new List<SysDisk>();//填充筛选数据的list
        foreach (SysDisk item in infoList)
        {
            SysDisk disk = new SysDisk();
            if (Ready == true && Failed == true && Online == true && Other == true)
            {
                disk.IP = item.IP;
                disk.diskno = item.diskno;
                disk.diskname = item.diskname;
                disk.diskstates = item.diskstates;
                disk.diskSerial = item.diskSerial;
                disk.SpareState = item.SpareState;
                disk.RollUpStatus = item.RollUpStatus;
                disk.ComponentStatus = item.ComponentStatus;
                disk.UpdateTime = item.UpdateTime;
                DiskList.Add(disk);
            }
            else if (Ready == true && Failed == true)
            {
                if (item.diskstates == "Ready" || item.diskstates == "Failed")
                {
                    disk.IP = item.IP;
                    disk.diskno = item.diskno;


                    disk.diskname = item.diskname;
                    disk.diskstates = item.diskstates;
                    disk.diskSerial = item.diskSerial;
                    disk.SpareState = item.SpareState;
                    disk.RollUpStatus = item.RollUpStatus;
                    disk.ComponentStatus = item.ComponentStatus;
                    disk.UpdateTime = item.UpdateTime;
                    DiskList.Add(disk);
                }
            }
            else if (Ready == true && Online == true)
            {
                if (item.diskstates == "Ready" || item.diskstates == "Online")
                {
                    disk.IP = item.IP;
                    disk.diskno = item.diskno;
                    disk.diskname = item.diskname;
                    disk.diskstates = item.diskstates;
                    disk.diskSerial = item.diskSerial;
                    disk.SpareState = item.SpareState;
                    disk.RollUpStatus = item.RollUpStatus;
                    disk.ComponentStatus = item.ComponentStatus;
                    disk.UpdateTime = item.UpdateTime;
                    DiskList.Add(disk);
                }
            }
            else if (Ready == true && Other == true)


            {
                if (item.diskstates == "Ready" || item.diskstates == "Other")
                {
                    disk.IP = item.IP;
                    disk.diskno = item.diskno;
                    disk.diskname = item.diskname;
                    disk.diskstates = item.diskstates;
                    disk.diskSerial = item.diskSerial;
                    disk.SpareState = item.SpareState;
                    disk.RollUpStatus = item.RollUpStatus;
                    disk.ComponentStatus = item.ComponentStatus;
                    disk.UpdateTime = item.UpdateTime;
                    DiskList.Add(disk);
                }
            }
            else if (Failed == true && Ready == true)
            {
                if (item.diskstates == "Failed" || item.diskstates == "Ready")
                {
                    disk.IP = item.IP;
                    disk.diskno = item.diskno;
                    disk.diskname = item.diskname;
                    disk.diskstates = item.diskstates;
                    disk.diskSerial = item.diskSerial;
                    disk.SpareState = item.SpareState;
                    disk.RollUpStatus = item.RollUpStatus;
                    disk.ComponentStatus = item.ComponentStatus;


                    disk.UpdateTime = item.UpdateTime;
                    DiskList.Add(disk);
                }
            }
            else if (Failed == true && Online == true)
            {
                if (item.diskstates == "Failed" || item.diskstates == "Online")
                {
                    disk.IP = item.IP;
                    disk.diskno = item.diskno;
                    disk.diskname = item.diskname;
                    disk.diskstates = item.diskstates;
                    disk.diskSerial = item.diskSerial;
                    disk.SpareState = item.SpareState;
                    disk.RollUpStatus = item.RollUpStatus;
                    disk.ComponentStatus = item.ComponentStatus;
                    disk.UpdateTime = item.UpdateTime;
                    DiskList.Add(disk);
                }
            }
            else if (Failed == true || Other == true)
            {
                if (item.diskstates == "Failed" && item.diskstates == "Online")
                {
                    disk.IP = item.IP;
                    disk.diskno = item.diskno;
                    disk.diskname = item.diskname;
                    disk.diskstates = item.diskstates;


                    disk.diskSerial = item.diskSerial;
                    disk.SpareState = item.SpareState;
                    disk.RollUpStatus = item.RollUpStatus;
                    disk.ComponentStatus = item.ComponentStatus;
                    disk.UpdateTime = item.UpdateTime;
                    DiskList.Add(disk);
                }
            }
            else if (Online == true || Other == true)
            {
                if (item.diskstates == "Online" && item.diskstates == "Other")
                {
                    disk.IP = item.IP;
                    disk.diskno = item.diskno;
                    disk.diskname = item.diskname;
                    disk.diskstates = item.diskstates;
                    disk.diskSerial = item.diskSerial;
                    disk.SpareState = item.SpareState;
                    disk.RollUpStatus = item.RollUpStatus;
                    disk.ComponentStatus = item.ComponentStatus;
                    disk.UpdateTime = item.UpdateTime;
                    DiskList.Add(disk);
                }
            }
            else if (Online == true || Failed == true)
            {
                if (item.diskstates == "Online" && item.diskstates == "Failed")
                {


                    disk.IP = item.IP;
                    disk.diskno = item.diskno;
                    disk.diskname = item.diskname;
                    disk.diskstates = item.diskstates;
                    disk.diskSerial = item.diskSerial;
                    disk.SpareState = item.SpareState;
                    disk.RollUpStatus = item.RollUpStatus;
                    disk.ComponentStatus = item.ComponentStatus;
                    disk.UpdateTime = item.UpdateTime;
                    DiskList.Add(disk);
                }
            }
            else if (Online == true || Ready == true)
            {
                if (item.diskstates == "Online" && item.diskstates == "Ready")
                {
                    disk.IP = item.IP;
                    disk.diskno = item.diskno;
                    disk.diskname = item.diskname;
                    disk.diskstates = item.diskstates;
                    disk.diskSerial = item.diskSerial;
                    disk.SpareState = item.SpareState;
                    disk.RollUpStatus = item.RollUpStatus;
                    disk.ComponentStatus = item.ComponentStatus;
                    disk.UpdateTime = item.UpdateTime;
                    DiskList.Add(disk);
                }


            }
            else if (Ready == true)
            {
                if (item.diskstates == "Ready")
                {
                    disk.IP = item.IP;
                    disk.diskno = item.diskno;
                    disk.diskname = item.diskname;
                    disk.diskstates = item.diskstates;
                    disk.diskSerial = item.diskSerial;
                    disk.SpareState = item.SpareState;
                    disk.RollUpStatus = item.RollUpStatus;
                    disk.ComponentStatus = item.ComponentStatus;
                    disk.UpdateTime = item.UpdateTime;
                    DiskList.Add(disk);
                }
            }
            else if (Failed == true)
            {
                if (item.diskstates == "Failed")
                {
                    disk.IP = item.IP;
                    disk.diskno = item.diskno;
                    disk.diskname = item.diskname;
                    disk.diskstates = item.diskstates;
                    disk.diskSerial = item.diskSerial;
                    disk.SpareState = item.SpareState;
                    disk.RollUpStatus = item.RollUpStatus;
                    disk.ComponentStatus = item.ComponentStatus;


                    disk.UpdateTime = item.UpdateTime;
                    DiskList.Add(disk);
                }
            }
            else if (Online == true)
            {
                if (item.diskstates == "Online")
                {
                    disk.IP = item.IP;
                    disk.diskno = item.diskno;
                    disk.diskname = item.diskname;
                    disk.diskstates = item.diskstates;
                    disk.diskSerial = item.diskSerial;
                    disk.SpareState = item.SpareState;
                    disk.RollUpStatus = item.RollUpStatus;
                    disk.ComponentStatus = item.ComponentStatus;
                    disk.UpdateTime = item.UpdateTime;
                    DiskList.Add(disk);
                }
            }
        }
        return DiskList;
    }

C# asp.net 对象 String
[解决办法]

建议根据item.diskstates,结合Ready,Failed,Online,Other参数的取值判断是否需要加入到新列表
foreach
{
switch()
{
case:
  if() //不符合要求
  continue;
 ...
}
//不需要 disk.IP = item.IP等操作,结构一样的
DiskList.Add(item)
}
[解决办法]
引用:
建议根据item.diskstates,结合Ready,Failed,Online,Other参数的取值判断是否需要加入到新列表
foreach
{
switch()
{
case:
  if() //不符合要求
  continue;
 ...
}
//不需要 disk.IP = item.IP等操作,结构一样的
DiskList.Add(item)
}


建议使用穷举switch结构,赋值封装成一个方法。

热点排行