111,120
社区成员
发帖
与我相关
我的任务
分享
Dictionary<string, object> dic = new Dictionary<string, object>();
foreach (KeyValuePair<string, object> obj in dic)
{
IList<string> list = (IList<string>)obj.Value;
}public abstract class 基类
{
public abstract void 状态处理();
}
public class 子类1 : 基类
{
public override void 状态处理() { }
}
public class 子类2 : 基类
{
public override void 状态处理() { }
}
public class 包装类
{
private Action<object> 状态处理委托;
private object 对象集合;
public static 包装类 set<子类>(IList<子类> 对象集合) where 子类 : 基类
{
return new 包装类
{
对象集合 = 对象集合,
状态处理委托 = (IList) =>
{
foreach (子类 对象 in (IList<子类>)IList)
{
对象.状态处理();
}
}
};
}
public IList<子类> get<子类>() where 子类 : 基类
{
return 对象集合 as IList<子类>;
}
public void 状态处理()
{
状态处理委托(对象集合);
}
}
private static void Example()
{
List<子类1> value1 = new List<子类1>();
List<子类2> value2 = new List<子类2>();
Dictionary<string, 包装类> dic = new Dictionary<string, 包装类>();
dic.Add(value1.GetType().FullName, 包装类.set(value1));
dic.Add(value2.GetType().FullName, 包装类.set(value2));
foreach (KeyValuePair<string, 包装类> keyValue in dic)
{
keyValue.Value.状态处理();
}
}
foreach (KeyValuePair<string, IList<基类>> keyValue in dic)
{
foreach (基类 value in keyValue.Value) ;//处理状态
}
foreach (KeyValuePair<string, object> keyValue in dic)
{
Type type = Type.GetType(keyValue.Key);
type objList = (type)keyValue.Value;
}
foreach (IList<string> item in GetItems(dict))
{
item.ToList().ForEach(x => Console.WriteLine(x));
}