C#面向对象14 List泛型集合/装箱和拆箱/字典集合(Dictionary)
1.List泛型集合
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace List泛型集合
{
class Program
{
static void Main(string[] args)
{
//
List<int> list = new List<int>();
list.Add();
list.Add();
list.AddRange(new int[] { , , , , , , , , });
list.AddRange(list); //List泛型集合可以转换成数组
int [] nums = list.ToArray();
Console.WriteLine(nums.Length);
for (int i = ; i < nums.Length; i++)
{
Console.WriteLine(nums[i]); }
/*
for (int i = 0; i < list.Count; i++)
{
Console.WriteLine(list[i]);
}*/
//数组转LIST泛型集合
char[] chars = new char [] { 'a','b','c','d','e'};
List<char> listchars = chars.ToList();
for (int i = ; i < listchars.Count; i++)
{
Console.WriteLine(listchars[i]);
} Console.ReadKey();
}
}
}
2.装箱拆箱
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace 装箱和拆箱
{
class Program
{
static void Main(string[] args)
{
//******
//装箱:将值类型转换为引用类型
//拆箱:将引用类型转换为值类型
//条件:看两种类型是否发生了装箱和拆箱,要看,这两种类型是否存在继承关系。 int n = ;
object o = n;//装箱
int nn = (int)o;//拆箱 //装箱操作
ArrayList list = new ArrayList();
for (int i = ; i < ; i++)
{
list.Add(i);
} //没有发生装箱和拆箱
string str = "";
int a = Convert.ToInt32(str); int b =;
IComparable cc = b;//装箱 Console.ReadKey();
}
}
}
3.字典集合
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace 字典集合
{
class Program
{
static void Main(string[] args)
{
Dictionary<int, string> dic = new Dictionary<int, string>();
dic.Add(, "");
dic.Add(, "");
dic.Add(, ""); dic[] = "new111"; //foreach (var item in dic.Keys)
//{
// Console.WriteLine(dic[item]);
//}
foreach (KeyValuePair<int,string> kv in dic)
{ Console.WriteLine("{0}----{1}", kv.Key, kv.Value);
} Console.ReadKey();
}
}
}
练习一:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace 集合练习
{
class Program
{
static void Main(string[] args)
{
//将一个数组中的奇数放到一个集合中,再将偶数放到另一个集合中
//最终将两个集合合拼并一个集合,并且奇数显示在左边, 偶数显示在右边。
//Convert.ToBoolean(i % 2); 1--true,0--false List<int> list = new List<int>();
for (int i = ; i < ; i++)
{
list.Add(i);
} List<int> list_ji = new List<int>();
List<int> list_ou = new List<int>(); for (int i = ; i < list.Count; i++)
{
if (Convert.ToBoolean(list[i] % ))
{
list_ji.Add(list[i]);
}
else
list_ou.Add(list[i]);
} Dictionary<int, int> dic = new Dictionary<int, int>();
for (int i = ; i < list_ji.Count; i++)
{
dic.Add(list_ji[i], list_ou[i]);
}
foreach (KeyValuePair<int,int> kv in dic)
{
Console.WriteLine("{0}----{1}",kv.Key,kv.Value);
} Console.ReadKey();
}
}
}
练习二:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace 集合练习2
{
class Program
{
static void Main(string[] args)
{
//提示用户输入一个字符串,通过foreach循环将用户输入的字符串赋值给一个字符数组
//string ss = "Welcome";
//char [] chars = ss.ToCharArray(); //统计Welcome to china 中每个字符出现的次数,不考虑大小写
string ss = "Welcome to china";
ss = ss.Trim();
ss=ss.Replace(" ","");
ss = ss.ToUpper();
Console.WriteLine(ss);
Dictionary<char, int> dic = new Dictionary<char, int>();
char[] chars = ss.ToArray();
int value=;
for (int i = ; i < chars.Length; i++)
{
if(dic.ContainsKey(chars[i]))
{
dic[chars[i]] = dic[chars[i]] + ;
}
else
{
dic.Add(chars[i], value);
}
} foreach (KeyValuePair<char,int> item in dic)
{
Console.WriteLine("{0}--{1}",item.Key,item.Value); } Console.ReadKey();
}
}
}
C#面向对象14 List泛型集合/装箱和拆箱/字典集合(Dictionary)的更多相关文章
- java - day010 - 基本类型包装,自动装箱和拆箱,日期,集合
基本类型的包装类 byte Byte short Short int Integer long Long float Float double Double char Character boolea ...
- C#基础知识系列二(值类型和引用类型、可空类型、堆和栈、装箱和拆箱)
前言 之前对几个没什么理解,只是简单的用过可空类型,也是知道怎么用,至于为什么,还真不太清楚,通过整理本文章学到了很多知识,也许对于以后的各种代码优化都有好处. 本文的重点就是:值类型直接存储其值,引 ...
- 对象转型、迭代器Iterator、Set集合、装箱与拆箱、基本数据类型与字符串的转换、TreeSet集合与对象
包的声明与定义 需要注意的是,包的声明只能位于Java源文件的第一行. 在实际程序开发过程中,定义的类都是含有包名的: 如果没有显式地声明package语句,创建的类则处于默认包下: 在实际开发中 ...
- C# 程序性能提升篇-1、装箱和拆箱,枚举的ToString浅析
前景提要: 编写程序时,也许你不经意间,就不知不觉的使程序代码,发生了装箱和拆箱,从而降低了效率,不要说就发生那么一次两次,如果说是程序中发生了循环.网络程序(不断请求处理的)等这些时候,减少装箱和拆 ...
- c#基础语言编程-装箱和拆箱
引言 为什么有装箱和拆箱,两者起到什么作用?NET的所有类型都是由基类System.Object继承过来的,包括最常用的基础类型:int, byte, short,bool等等,就是说所有的事物都是对 ...
- Java自动装箱和拆箱
jdk5.0之后,在基本数据类型封装类之间增加了自动装箱和拆箱的功能,其实“自动”的实现很简单,只是将装箱和拆箱通过编译器,进行了“自动补全”,省去了开发者的手动操作. 而进行封装类与对应基本数据类型 ...
- C#装箱和拆箱。
装箱:值类型-->引用类型. 拆箱:引用类型-->值类型 装箱:把值类型拷贝一份到堆里.反之拆箱. 具有父子关系 是拆装箱的条件之一. 所以: class Program { static ...
- 基础系列(4)—— C#装箱和拆箱
一 装箱和拆箱的概念 装箱是将值类型转换为引用类型 : 拆箱是将引用类型转换为值类型 : 值类型:包括原类型(Sbyte.Byte.Short.Ushort.Int.Uint.Long.Ulong.C ...
- 全面理解java自动装箱和拆箱(转)
自动装箱和拆箱从Java 1.5开始引入,目的是将原始类型值转自动地转换成对应的对象.自动装箱与拆箱的机制可以让我们在Java的变量赋值或者是方法调用等情况下使用原始类型或者对象类型更加简单直接. 如 ...
随机推荐
- linux 搜索文件夹下的所有文件内容
find . -type f -name "*.*" | xargs grep "博客园"
- 使用 Jenkins 发布 web 应用至 Tomcat
Jenkins 的安装:https://www.cnblogs.com/jhxxb/p/11406805.html 发布流程:Git -> Maven -> Tomcat 一.基本环境 G ...
- 线上应用接入sentinel的第一个流控规则
sentinel接入第1个应用A以及控制台,已经上线一段时间了,本周接入了第2个应用B: 因为测试同学只有几个,没有压测团队.测试平台.. 各接口能承载的最大qps不确定 ,接入的应用暂时都没有配置规 ...
- 数据结构之双端队列(Deque)
1,双端队列定义 双端队列:其两端都可以入列和出列的数据结构,如下图所示,队列后面(rear)可以加入和移出数据,队列前面(front)可以加入和移出数据 双端队列操作: deque=Deque() ...
- Oracle存储过程、游标、函数
SQL99是什么 (1)是操作所有关系型数据库的规则 (2)是第四代语言 (3)是一种结构化查询语言 (4)只需发出合法合理的命令,就有对应的结果显示 SQL的特点 (1)交互性强,非过程化 (2)数 ...
- TCP怎么保证证包有序传输的,TCP的慢启动,拥塞避免,快速重传,快速恢复
TCP提供了最可靠的数据传输,它给发送的每个数据包做顺序化(这看起来非常烦琐),然而,如果TCP没有这样烦琐的操作,那么,可能会造成更多的麻烦.如造成数据包的重传.顺序的颠倒甚至造成数据包的丢失. 那 ...
- Python3+RobotFramewok 用户自定义库的开发(四)
在介绍这个之前,可以先看下python的目录Python\Lib\site-packages下面的文件夹,你会发现这个目录下面有DatabaseLibrary.RequestsLibrary.Sele ...
- GBK格式字符串右补空格
public class Test2 { public static void main(String[] s) throws IOException { List<User> l ...
- Validform表单验证时的 【坑】
代码如下 <input style="width: 360px" name="ll_wb_job.qcwyJobUrl" value="&quo ...
- 【Java】生成随机的手机号码并输出到文件
import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.util.R ...