我可以通读一个泛型列表的参数吗?

本文关键字:列表 泛型 参数 一个 我可以 | 更新日期: 2023-09-27 18:37:12

我正在使用postsharp来记录方法调用,我还需要记录参数值。当我有泛型列表的参数并且无法循环访问列表以获取其中的值时,我的问题就出现了。

我知道如何检查参数是否是一个列表,但我只是无法读取其中的值......

是否可以通读列表,我将如何做到这一点?

for (int i = 0; i < args.Arguments.Count; i++)
            {
                if (methodName == "LogonUser" && i == 1)
                {
                    sb.Append(",********");
                    break;
                }
                else if (i > 0)
                {
                    sb.Append(", ");
                }
                if (args.Arguments[i] is IList && args.Arguments[i].GetType().IsGenericType)
                {
                   //here is where i need to read through the list

                }
                sb.Append(args.Arguments.GetArgument(i) ?? "null");


            }

我可以通读一个泛型列表的参数吗?

如果您只想遍历参数,当它是(泛型)列表时,您可以检查参数是否实现了接口 IEnumerable,然后循环值在带有 foreach 语句的列表中。

IEnumerable argumentList = args.Arguments[i] as IEnumerable;
if (argumentList != null) {
  foreach(var item in argumentList){
    // Do what you want with the item
  }
}