listwin32在哪里定义的的吗

30774人阅读
NET webForms技术(5)
定义:List&T&类表示可通过索引访问的对象的强类型列表,提供用于对列表进行搜索、排序和操作的方法。
作用:泛型最常见的用途是泛型集合我们在创建列表类时,列表项的数据类型可能是int,string或其它类型,如果对列表类的处理方法相同,就没有必要事先指定数据类型,留待列表类实例化时再指定。相当于把数据类型当成参数,这样可以最大限度地重用代码,保护类型的安全以及提高性能。
List的一般用法所属命名空间: System.Collections.Genericpublic class List&T&:IList&T&,Icollection&T&,IEnumerable&T&,IList,Icollection,IenumerableList&T&是ArrayList类的泛型等效类,该类使用大小可按需动态增加的数组实现IList&T&泛型接口
(1)声明 List&T&mlist = new List&T&();&eg: string[] Arr = {"a","b","c"};&&&& List&string& mlist = new List&string&(Arr);
(2)添加一个元素 List.Add(T item) && eg: mlist.Add("d");
(3)添加集合元素&& eg: string[] Arr2 ={"f","g"."h"};&&&&&& mlist.AddRange(Arr2);
(4)在index位置添加一个元素 Insert(int index,T item)&& eg: mlist.Insert(1,"p");
(5)遍历List中元素
  foreach(T element in mlist) T的类型与mlist声明时一样     {       Console.WriteLine(element);&&&&&&&&& }
&&& eg:&&& foreach(string s in mlist)&&&&&&&&& {&&&&&&&&&&&& Console.WriteLine(s);&&&&&&&&&& }
(6)删除元素
&&& List.Remove(T item) 删除一个值&&& eg: mlist.Remove("a");
&&& List.RemoveAt(int index);删除下标为index的元素&&& eg: mlist.RemoveAt(0);&&& &&& List.RemoveRange(int index,int count); 下标index开始,删除count个元素&&& eg:mlist.RemoveRange(3,2);
(7)判断某个元素是否在该List中
&&& List.Contains(T item) 返回true或false&&& eg:&&& if(mlist.Contains"("g"))&&&&&& Console.WriteLine("g存在列表中");&&& else&&&&&& mlist.Add("g");
(8)给List里面元素排序 List.Sort() 默认是元素每一个字母按升序&& eg: mlist.Sort();
(9)给List里面元素顺序反转 List.Reverse() 可以与List.Sort()配合使用
(10)List清空 List.Clear()&& eg: mlist.Clear();
(11)获得List中元素数目 List.Count() 返回int值&& eg: mlist.count();
List进阶,强大方法
(1)List.FindAll方法:检索与指定谓词所定义的条件相匹配的所有元素 &&& &&& class program&&& {&&&&&& static void Main(stirng[] args)&&&&&& {&&&&&&&& student stu = new student();&&&&&&&& stu.Name="arron";&&&&&&&& List&student& students= new List&student&();&&&&&&&& students.Add(stu);&&&&&&&& students.Add(new student("candy"));&&&&&&&& FindName myname = new FindName("arron");&&&&&&&& foreach(student s in students.FindAll(new Predicate&student&(myname.IsName)))&&&&&&&& { Console.WriteLine(s);}&&&&&& }
&&& public class student&&& {&&&&&& public string Name{}&&&&&& public student(){}&&&&&& public override string ToString()&&&&&&& {&&&&&&&&&&& return string.Format("姓名:{0}",Name);&&&&&&&& }&&&& }
&&& public class FindName&&& {&&&&& private string _&&&&& public FindName(string Name)&&&&& {& this._name=N}&&&&& public bool IsName(student s)&&&&&& { return (s.Name==_name)?true:}&&& }
(2)List.Find方法 搜索与指定谓词所定义的条件相匹配的元素,并返回整个List中的第一个匹配元素
&&& //Predicate是对方法的委托,如果传递给它的对象与委托定义的条件匹配,则该方法返回true,当前List的元素  被逐个传递给Predicate委托,并在List中间前移动,从第一个元素开始,到最后一个元素结束,当找到匹配项  时处理停止
  第一种方法 委托给拉姆达表达式:  eg:  &&&& string listFind = mlist.Find(name=&&&&&&& {&&&&&&&&& if(name.length&3)&&&&&&&&&&&&&&&&&&&&&&&&&&& });
&&& 第二种方法 委托给一个函数&&& eg:&&&& public bool ListFind(string name)
&&&&&&&&&&& if (name.Length & 3)
&&&&&&&&&&& {
&&&&&&&&&&&&&&&
&&&&&&&&&&& }
&&&&&&&&&&&
&&&&& 这两种方法的结果是一样的
(3) List.FindLast方法& public T FindLast(Predicate&T& match);确定是否 List 中的每个元素都与指定的谓词所定义的条件相匹配。用法与List.Find相同。
(4) List.TrueForAll方法:& 确定是否 List 中的每个元素都与指定的谓词所定义的条件相匹配。
&public bool TrueForAll(Predicate&T& match);
(5) List.Take(n):& 获得前n行 返回值为IEnumetable&T&,T的类型与List&T&的类型一样
IEnumerable&string& takeList=& mList.Take(5);
&&&&&&&&& foreach (string s in takeList)
&&&&&&&&& {
&&&&&&&&&&&&& Console.WriteLine("element in takeList: " + s);
&&&&&&&&& }
&&&&&& 这时takeList存放的元素就是mList中的前5个
(6) List.Where方法:检索与指定谓词所定义的条件相匹配的所有元素。跟List.FindAll方法类似。
&&&&&&&&&&& IEnumerable&string& whereList = mList.Where(name =&
&&&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&& if (name.Length & 3)
&&&&&&&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&&&&&& else
&&&&&&&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&& });
&&&&&&&& foreach (string s in subList)
&&&&&&&& {
&&&&&&&&&&&& Console.WriteLine("element in subList: "+s);
&&&&&&&& }
&&&&&&&& 这时subList存储的就是所有长度大于3的元素
(7)List.RemoveAll方法:移除与指定的谓词所定义的条件相匹配的所有元素。
public int RemoveAll(Predicate&T& match);
&&&&&&&&&&& mList.RemoveAll(name =&
&&&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&& if (name.Length & 3)
&&&&&&&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&&&&&& else
&&&&&&&&&&&&&&&&&&& {
&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&& }
&&&&&&&&&&&&&&& });
&&&&&&&&&&& foreach (string s in mList)
&&&&&&&&&&& {
&&&&&&&&&&&&&&& Console.WriteLine("element in mList:&&&& " + s);
&&&&&&&&&&& }
&&&&& 这时mList存储的就是移除长度大于3之后的元素。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:48575次
排名:千里之外
原创:10篇
(5)(2)(1)(2)(3)(1)freemarker如何定义一个局部 list变量 - 开源中国社区
当前访客身份:游客 [
当前位置:
遇到一个问题,freemarker使用Map&String,List&传递数据,现在有一个递归调用,如何定义一个局部list变量,由于变量名是变化的,比如我Map存item1,item2....,这几个list列表不确定,在库中查出来的,我在模板中遍历时如何把item1,item2,list变量取出来呢,,,
模板在下面,如何拼接呢,freemarker新手,查文档没查到
&id&${ids}&/id&
&#if list?size != 0&
&#list list as ls&
&${ls[&VC2KEY&]}&${ls[&ITEMVALUE&]}&/${ls[&VC2KEY&]}&
&#--公共模块列表 2--&
&#if commonModulesList?size != 0&
&commonModuleList&
&@common paraList=commonModulesList value=1 /&
&/commonModuleList&
&#--通讯模块列表 3 --&
&#if communicateModulesList?size != 0&
&moduleList&
&@common paraList=communicateModulesList value=1 /&
&/moduleList&
&#--功能模块列表
&#if functionModulesList?size != 0&
&functionModuleList&
&@common paraList=functionModulesList value=1 /&
&/functionModuleList&
&#--任务模块列表 5 --&
&#if taskModulesList?size != 0&
&taskListSchedule&
&@common paraList=taskModulesList value=1 /&
&/taskListSchedule&
&#macro common paraList value=1&
&#if paraList?size != 0&
&#list paraList as modules&
&function&
&id&${modules[&TASKID&]}&/id&
&name&${modules[&TASKNAME&]}&/name&
&bean&${modules[&TASKNAME&]}&/bean&
&#local y =&items${value}&&
&#local z=&${y}& &
&#if z?size != 0&
&config key=&config& desc=&配置&&
&function id=&${modules[&TASKID&]}& name=&${modules[&TASKNAME&]}& desc=&${modules[&VC2DESC&]}& bean=&${modules[&VC2DESC&]}& &
&#list z as item&
&item key=&${item[&VC2KEY&]}& value=&${item[&ITEMVALUE&]}& desc=&${item[&VC2DESC&]}& /&
&#-- end items --&
&/function&
&/function&
&#local nextvalue=&${value}+1& /&
&#if taskList?size != 0 &
&@common paraList = taskList value=nextvalue /&
共有5个答案
<span class="a_vote_num" id="a_vote_num_
您是说我在这个地方传一个Map进来是么
<span class="a_vote_num" id="a_vote_num_
&#assign keys=mapObject?keys& &#list keys as key& && &........ &/#list& key有了,取list就不用说了吧
<span class="a_vote_num" id="a_vote_num_
无解么,能不能换个思路
<span class="a_vote_num" id="a_vote_num_
嗯,是对的,但我用Map, put的时候,是根据String的key传入的,代码如下,是递归加入变量的,如果有多个items,后面一个会覆盖前一个.
// 任务模块列表 5
List&?& taskModulesList = iTlTaskDAL.querySelectedTaskList(unitId,
TASK_TYPE);
root.put(&taskModulesList&, taskModulesList);
if (taskModulesList.size() & 0) {
recursionResolve(root, taskModulesList, TASK_TYPE);
} @SuppressWarnings(&unchecked&)
private void recursionResolve(Map root, List&?& list, int type) {
for (Object obj : list) {
Map map = (Map)
String taskIdStr = String.valueOf(map.get(&PROGRAMID&));
// 得到item配置项的键值对。
int programId;
int taskId;
//得到项目配置项的列表.
// 得到选中模块列表。
List&?& taskL
if (0 & taskIdStr.indexOf(&:&)) {
if (1 == taskIdStr.split(&:&).length) {
programId = Integer.parseInt(taskIdStr.split(&:&)[0]);
items = iTlTaskDAL.queryProgramItem(programId);
taskList = iTlTaskDAL.queryProgramList(programId);
taskId = Integer.parseInt(taskIdStr.split(&:&)[1]);
items = iTlTaskDAL.queryTaskItem(taskId);
taskList = iTlTaskDAL.querySelectedTaskList(taskId, 6);
items = iTlTaskDAL.queryTaskItem(Integer
.parseInt(taskIdStr));
taskList = iTlTaskDAL.querySelectedTaskList(
Integer.parseInt(taskIdStr), type);
root.put(&items&+cnt.incrementAndGet(), items);
root.put(&taskList&+cnt.get(), taskList);
// 如果有选中的模块列表
if (taskList.size() & 0) {
recursionResolve(root, taskList, type);
} catch (Exception ex) {
logger.error(ex.toString(), ex);
<span class="a_vote_num" id="a_vote_num_
变量名本身是变化的,没必要啊,你不就是枚举出 Map 中的 List 吗?
用同一个固定的变量名就可以,处理完一个接着下一个
更多开发者职位上
有什么技术问题吗?
GisonWi...的其它问题
类似的话题list的一般定义_百度知道
list的一般定义
我有更好的答案
//c.com/zhidao/wh%3D600%2C800/sign=4972ba36f08ccd6fd57b1/35a85edf8db1cb13db410ff2dab22、价目]单<img class="ikqb_img" src="http.baidu.jpg" esrc=" 名[清
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁其他回答(3)
你想让他长度不变定义一个数组就行了
收获园豆:1
园豆:13909
public List&double& u = new List&double&(100);
收获园豆:1
园豆:10164
这代码是有问题的嘛。
fun2()里循环100次就调用100 fun1();
但是你的fun1()里面循环给u[i]赋值。每次i都是从0到99
相当于fun2前面99次循环都是做无用功。最后一次循环就把前面的都覆盖了。
收获园豆:1
&&&您需要以后才能回答,未注册用户请先。

我要回帖

更多关于 全局变量在哪里定义 的文章

 

随机推荐