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
  • 相关阅读:
    六.php小项目(2)过桥问题
    六.php小项目(1)九九乘法表
    五.php语言结构(3)break continue
    五.php语言结构(2)循环结构
    五.php语言结构(1)顺序和控制结构
    四.php运算符(6)字符串运算符和赋值运算符
    四.php运算符(5)递增递减运算符
    Day13 Java基础学习笔记
    Day12Java基础学习笔记
    Day 11Java基础学习笔记
  • 原文地址:https://www.cnblogs.com/z45281625/p/11322606.html
Copyright © 2011-2022 走看看