229 lines
3.8 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|
|
}
|