一、数组相关操作
1、Array.Fill()
a、Fill( T[] array ,T value ,Int start,int count)
注:四个参数,将数据value 从start 位置开始,一共填充count 个,填充进数组 array中
b、Fill(T[] array,T value)
注:两个参数,将数据value 填充进数组array中,所有值相同
2、Int[] 数组操作
a、求和
int[] array;
int y = array.Sum(x => x);
=> : lumada 表达式的标志,
=>后面跟待执行的运算 ,x =>x 表示x ==x ;求array 里面所有值 x 的和
如果是 int y=array.Sum(x=>x=1),求array 的和,但是把每一个元素当作1来进行运算,不改变原始array
b、求指定的元素个数
int z = array.Where(x=>x > 0).Count();
求array 数组中x>0的元素数
c、排序
eg: int[] value
Array.Sort(value);
value.Sort();
Array.Sort(value(int a, int b)):可以对ab 范围内数据进行升序牌系列
注:默认是按照升序排序,降序排序可以借助lamda 表达式,或者利用sort升序后,再结合Array.Reverse(value)进行翻转实现降序
d、删除数组中相关数据
int[] value;int a ;
删除value中idx=a 的数据
int[] value1=value.Where(value.ToList().IndexOf(s) != a ).ToArray();
删除value中值等于a 的数据
int[] value1=value.Where(val=>val!=a).ToArray();
e、将一个数组中的值复制给另一个数组
Array.Copy(Arra1,int a,Array2,int b,int c) :将Array1从a 位置开始的数组复制到Array2 从0开始的位置,复制的长度为n
Copy(Array1, Array2, Int32 c):将Array1 从第一个元素起复制到Array2的第一个元素,复制长度为c
f、获取一组数据中的最小值
int[] Value1
Value1.Min();
二、string 相关操作
1、Spilt 拆分
string[] words = sentence.Split('_')
表示用 _ 拆分 sentence , _ 需要用 ' ' 单括号 括起来
三、List相关操作
1、创建List
List<T> variable =new List<T> variable
2、清空List
variable.Clear();
3、IList<T>
IList是所有范型的接口,但是初始化不能用IList<T> res =new IList<T>()去进行初始化
因为抽象类或接口不能实例化
优点:当只想使用IList<T>
接口规定的字段和方法时,他不获取实现这个接口的类的其他方法和字段,有效的节省空间
实例化 :
IList<IList <T>> res=new List<IList<T>> ();
IList<IList <T>> res=new int[][];
四、Dictionary 相关操作
Dictionary< T key,T value>
1、创建Dictionary
Dictionary<T key,T value> dic=new();
Dictionary<T key,T value> dic=new Dictionary<T key,T value>();
2、添加key 和value
if (dic.ContainsKey(key))
{
dic[key].Add(value);
}
else
{
dic.Add(key, new <T> value);
}
五、Hash 相关操作
1、HashSet<T> set=new();
六、链表和堆栈
1、定义链表
public class ListNode {
public int val;
public ListNode next;
public ListNode(int val=0, ListNode next=null) {
this.val = val;
this.next = next;
}
}
2、stack :堆
Stack<T> stack1=new Stack<T>();
a、把列表放到堆栈里
ListNode lstN1;
while (l1 != null) {
stack1.Push(l1.val);
l1 = l1.next;
}
b、统计堆里的个数
stack.Count;
六、计算BitCount 的代码
1、把一个整数用二进制表示时,其中二进制1的个数
int bitCount(int x)
{
int cnt = 0;
while (x > 0)
{
x &= x - 1;
++cnt;
}
return cnt;
}
2、判断一个整数(x)是否是2的n次方
bool bitCount(int x)
{
if( x & x - 1)
//if(( x & x - 1)==1)
{
return false;
}
else
{
return ture
}
}
七、常见数值
int 的最大最小值
int是32位的,要有1位区分正负,所以最高位只有31位
int.MaxValue=2147483647=2^31 -1
int.MinValue=-2147483648=-(2^31)