C# 如何检查键值c中的值是否为多个#

C# 如何检查键值c中的值是否为多个#,c#,asp.net-mvc,C#,Asp.net Mvc,方法如下: protected override void OnActionExecuting(ActionExecutingContext filterContext) { var parameters = filterContext.ActionParameters.ToArray(); if (parameters.Count() > 0) { foreach (KeyValuePair<string, object> data i

方法如下:

protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
    var parameters = filterContext.ActionParameters.ToArray();
    if (parameters.Count() > 0)
    {
        foreach (KeyValuePair<string, object> data in parameters)
        {
            singleparameters = singleparameters + data.Key + ":" + " " + data.Value + ",";

        }
        singleparameters = singleparameters.Remove(singleparameters.LastIndexOf(','));
受保护的覆盖无效OnActionExecuting(ActionExecutingContext filterContext)
{
var parameters=filterContext.ActionParameters.ToArray();
if(parameters.Count()>0)
{
foreach(参数中的KeyValuePair数据)
{
singleparameters=singleparameters+data.Key+“:“+”“+data.Value+”,“;
}
singleparameters=singleparameters.Remove(singleparameters.LastIndexOf(',');
我想检查数据值是否包含单个值或多个值

如果数据是单个数据,则
键:req
值:pagerecords:200

如果数据包含多个值,则检查值是否包含数组或单个值。例如:
key:req
value:pagerecords:200,pageinfo:adsa,count:0,filter:records:200,cotnain:asa

我想检查一个访问条件

我是这方面的新手,所以请给我任何建议 请进一步澄清

这可以帮助您检查值是否为单个或多个:

var valueFields = data.Value.GetType().GetFields();
var fieldNumber = valueFields.Length;  
//If fieldNumber = 1 it is single, otherwise it is multiple
然后可以检查它是否包含任何数组

foreach(var fld in valueFields) {
  bool isArray = fld.FieldType.IsArray; //true if the field is an array
}

我发现很难理解你的问题。简言之,我想检查值是单值还是多值,如果是多值,然后再次检查它是否包含数组或单值@Cort3zIt不清楚“单值”或“多值”是什么意思。你发送参数的格式是什么?请给出一个示例。@YeldarKurmangaliyev我已经添加了图像…我想检查值是否包含单个值或多个值,并且在多个值中它也包含数组或仅包含单个值..从链接中可以清楚地看到JqGridRequest将具有属性而不是字段。因此您的解决方案在这里可能不起作用,我没有使用JQGrid,所以我只是假设它是一个普通对象:)thnx它也有帮助:)非常感谢工作..还有第二个问题,在多值if单值或多值中..如何检查..@debin,我的意思是,数据在jqGridRequest中被内部序列化,所以你可以通过设置if条件来执行你想要的任务。但是如果你真的想知道它是多值还是单值,那么你可以使用var fields=g.GetType().GetProperties();bool hasSingleValue=fields.Count(x=>x.GetValue(g,null)!=null)==1;这是为了知道它是否是单值的,如果它是单值的,那么除了一个之外,所有的属性值都是空的,否则它是多值的。谢谢你的回复:)但是当有一个单值
参数不匹配时,我得到了一个错误。你知道吗?
 foreach (KeyValuePair<string, object> data in parameters)
 {
      if (data.Key == "request" && data.value is jqGridRequest)
      {
       var fields = g.GetType().GetProperties();
       bool hasSingleValue = fields.Count(x => x.GetValue(g, null) != null) == 1;
      }
 }
jqGridRequest request = data.value as jqGridRequest;
if (request != null)
{
int  pageindex = request.PageIndex;
//// so on other properties, get it and use it directly without looping. 
}