/// <summary>
/// 处理过长的显示字符串,只显示前几个字符,后面加上“...”
///
/// </summary>
/// <param name="str">要处理的字符串</param>
/// <param name="size">需要的长度</param>
/// <returns></returns>
public static string GetSeveralChar(string str, int size)
{
return Encoding.Default.GetBytes(str).Length > size ? Encoding.Default.GetString(Encoding.Default.GetBytes(str).Take(size).ToArray()).Replace("?", String.Empty) + "..." : str;
}
/// <summary>
/// 注册JS
///
/// </summary>
/// <param name="page"></param>
/// <param name="Method"></param>
public static void RegisterStartupScript(System.Web.UI.Page page, string Method)
{
page.ClientScript.RegisterStartupScript(page.GetType(), DateTime.Now.ToString(), "<script type='text/javascript'>" + Method + "</script>");
}
/// <summary>
/// 根据数字得到二进制的字符串
///
/// </summary>
/// <param name="num"></param>
/// <returns></returns>
public static string GetBlobFromNum(int num)
{
int len = sizeof(int) * 8;
StringBuilder str = new StringBuilder();
int exmple = 1 << len - 1;
int tmp = num;
for (int i = 0; i < len; i++)
{
str.Append((tmp & exmple) == 0 ? "0" : "1");
tmp <<= 1;
}
return str.ToString().Substring(str.ToString().Length - 4);
}
/// <summary>
/// 根据二进制获取数字集合
///
/// </summary>
/// <param name="blob"></param>
/// <returns></returns>
public static string GetNumArrayByBlob(string blob)
{
string NumArray = string.Empty;
for (int i = 0; i < blob.Length; i++)
{
if (blob.Substring(i, 1) == "1")
{
NumArray = string.IsNullOrEmpty(NumArray) ? Get2ndPowerNum(blob.Length - i - 1).ToString() : NumArray + "," + Get2ndPowerNum(blob.Length - i - 1).ToString();
}
}
return NumArray;
}
/// <summary>
/// 计算2的N次方的方法
///
/// </summary>
/// <param name="lenth"></param>
/// <returns></returns>
public static int Get2ndPowerNum(int lenth)
{
return lenth == 0 ? 1 : 2 * Get2ndPowerNum(lenth - 1);
}
/// <summary>
/// 将List转换为字符串
/// </summary>
/// <param name="coll"></param>
/// <returns></returns>
public static string GetListCollectionByStr(List<string> coll)
{
string result = string.Empty;
for (int i = 0; i < coll.Count; i++)
{
result = string.IsNullOrEmpty(result) ? coll[i] : result + "," + coll[i];
}
return result;
}
/// <summary>
/// 从数组中随机取出多个不重复的项
/// 作者:刘仁和
/// </summary>
/// <param name="list"></param>
/// <param name="num"></param>
/// <returns></returns>
public static IList<string> getListItems(IList<string> list, int num)
{
//新建一个泛型列表,将传入的列表复制过来,用于运算,而不要直接操作传入的列表;
//这样写是引用复制,不对啦
//IList<string> temp_list = list;
//另外这样写也要注意,也不是深度复制
IList<string> temp_list = new List<string>(list);
//取出的项,保存在此列表
IList<string> return_list = new List<string>();
//Random random = new Random(unchecked((int)DateTime.Now.Ticks));
Random random = new Random();
for (int i = 0; i < num; i++)
{
//判断如果列表还有可以取出的项,以防下标越界
if (temp_list.Count > 0)
{
//在列表中产生一个随机索引
int arrIndex = random.Next(0, temp_list.Count);
//将此随机索引的对应的列表元素值复制出来
return_list.Add(temp_list[arrIndex]);
//然后删掉此索引的列表项
temp_list.RemoveAt(arrIndex);
}
else
{
//列表项取完后,退出循环,比如列表本来只有10项,但要求取出20项.
break;
}
}
return return_list;
}