Files
tianrunCRM/Assets/CoolapeFrame/Scripts/toolkit/NewList.cs
2020-07-04 14:41:25 +08:00

229 lines
3.8 KiB
C#

/*
********************************************************************************
*Copyright(C),coolae.net
*Author: chenbin
*Version: 2.0
*Date: 2017-01-09
*Description: List 安全包装
*Others:
*History:
*********************************************************************************
*/
using System.Collections;
using System;
using UnityEngine;
namespace Coolape
{
public class NewList : ArrayList
{
public static NewList create()
{
return new NewList();
}
public static NewList create(params object[] args)
{
NewList ret = new NewList();
return ret.add(args);
}
public static NewList create(ArrayList list)
{
if (list is NewList)
return (NewList)list;
NewList ret = new NewList();
ret.AddRange(list);
return ret;
}
public NewList add(object val)
{
lock (this) {
this.Add(val);
return this;
}
}
public NewList add(params object[] args)
{
lock (this) {
foreach (object o in args)
this.Add(o);
return this;
}
}
public override bool Contains(object o)
{
lock (this) {
return base.Contains(o);
}
}
public static object getObject(ArrayList list, int i)
{
lock (list) {
return list [i];
}
}
public object getObject(int i)
{
lock (this) {
return getObject(this, i);
}
}
public bool getBool(int i)
{
lock (this) {
object val = getObject(i);
if (val == null)
return false;
if (val is bool)
return (bool)val;
return Convert.ToBoolean(val);
}
}
public byte getByte(int i)
{
lock (this) {
object val = getObject(i);
if (val == null)
return 0;
if (val is byte)
return (byte)val;
return Convert.ToByte(val);
}
}
public int getInt(int i)
{
lock (this) {
object val = getObject(i);
if (val == null)
return 0;
if (val is int)
return (int)val;
return Convert.ToInt32(val);
}
}
public double getLong(int i)
{
lock (this) {
object val = getObject(i);
if (val == null)
return 0;
if (val is double)
return (double)val;
return Convert.ToInt64(val);
}
}
public double getDouble(int i)
{
lock (this) {
object val = getObject(i);
if (val == null)
return 0;
if (val is double)
return (double)val;
return Convert.ToDouble(val);
}
}
public string getString(int i)
{
lock (this) {
object val = getObject(i);
if (val == null)
return "";
if (val is double)
return (string)val;
return Convert.ToString(val);
}
}
public ArrayList getList(int i)
{
lock (this) {
object val = getObject(i);
if (val == null)
return new ArrayList();
if (val is ArrayList)
return (ArrayList)val;
return null;
}
}
public NewList getNewList(int i)
{
lock (this) {
object val = getObject(i);
if (val == null)
return new NewList();
if (val is NewList)
return (NewList)val;
return null;
}
}
public Hashtable getMap(int i)
{
lock (this) {
object val = getObject(i);
if (val == null)
return new Hashtable();
if (val is Hashtable)
return (Hashtable)val;
return null;
}
}
public NewMap getNewMap(int i)
{
lock (this) {
object val = getObject(i);
if (val == null)
return new NewMap();
if (val is NewMap)
return (NewMap)val;
return null;
}
}
public int pageCount(int pageSize)
{
int page = Count / pageSize;
page = Count == page * pageSize ? page : page + 1;
return page;
}
public ArrayList getPage(int page, int pageSize)
{
lock (this) {
int begin = (page * pageSize);
if (begin > Count || begin < 0)
return new NewList();
return this.GetRange(begin, pageSize);
}
}
}
}