C# 编程 常用函数

一、数组相关操作

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) != ).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)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值