读书人

C# 淘选LIst对象数据将筛选的数据填

发布时间: 2013-05-02 09:39:29 作者: rapoo

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结构,赋值封装成一个方法。

读书人网 >C#

热点推荐