zoukankan      html  css  js  c++  java
  • 通过字段名和变量值获取集合序号

           //例子  返回集合中字段名为ID,值为001的对象所在序号;
        int num = SearchListByT<string,People>(AppData.TotalPeople,"ID","001");
        
          
    
            #region 通过字段名和变量值获取集合序号
            /// <summary>
            /// 获取类中的属性值
            /// </summary>
            /// <param name="FieldName"></param>
            /// <param name="obj"></param>
            /// <returns></returns>
            private static T GetModelValue<T>(string FieldName, object obj)
            {
                try
                {
                    Type Ts = obj.GetType();
                    T o = (T)Ts.GetProperty(FieldName).GetValue(obj);
                    if (string.IsNullOrEmpty(o.ToString())) return default(T);
                    return o;
                }
                catch
                {
                    return default(T);
                }
            }
    
            /// <summary>
            /// 设置类中的属性值
            /// </summary>
            /// <param name="FieldName"></param>
            /// <param name="obj"></param>
            /// <returns></returns>
            private static bool SetModelValue<T>(string FieldName, T Value, object obj)
            {
                try
                {
                    Type Ts = obj.GetType();
                    object v = Convert.ChangeType(Value, Ts.GetProperty(FieldName).PropertyType);
                    Ts.GetProperty(FieldName).SetValue(obj, v, null);
                    return true;
                }
                catch
                {
                    return false;
                }
            }
            /// <summary>
            /// 遍历Object集合,获取字段名和值相同的集合的序号
            /// </summary>
            /// <param name="list">遍历的集合</param>
            /// <param name="FieldName">字段名</param>
            /// <param name="value">字段数据</param>
            /// <typeparam name="T">字段类型</typeparam>
            /// <returns></returns>
            public static int SearchListByT<T,U>(System.Collections.Generic.List<U> list, string FieldName, T value)
            {
                for (int i = 0; i < list.Count; ++i)
                {
                    T re = GetModelValue<T>(FieldName, list[i]);
                    if (value.Equals(re))
                    {
                        return i;
                    }
                }
                return -1;
            }
            #endregion
  • 相关阅读:
    Windows Server 2012 R2搭键域环境
    JS节点的属性: nodeType, nodeName, nodeValue
    JS获取文本节点
    JS获取元素节点的子节点
    读写属性节点
    获取指定的元素节点
    JAVA学习--反射之动态代理模式
    JAVA学习--反射之静态代理模式
    JAVA学习--反射其他操作
    JAVA学习--反射构造器操作
  • 原文地址:https://www.cnblogs.com/z45281625/p/11322606.html
Copyright © 2011-2022 走看看