C#怎样定义返回值为List的方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#怎样定义返回值为List的方法相关的知识,希望对你有一定的参考价值。

系统给出的方法越界报错,因此自己写个方法
/// <summary>
/// 获取List的前count个项目
/// </summary>
/// <param name="list"></param>
/// <param name="count"></param>
/// <returns></returns>
public static List<T> GetTopListByNum(List<T> list, int index, int count)


if (count < list.Count)
count = list.Count;
if (index > count)
index = count;
return list.GetRange(index, count);

T的地方报错,找不到namespace,缺少引用吗?
我写的想通用所有Model

public static List<T> GetTopListByNum<T>(List<T> list, int index, int count)

方法名后价加个<T>就可以了。
使用的时候GetTopListByNum<Model>() 就能返回List<Model>了
参考技术A //返回固定List<int>类型
public static List<int> GetList()

    return new List<int>();

//返回List<T>类型
//可以这样调用,GetList(1);此时返回List<int>类型
public static List<T> GetList<T>(T t)

    return new List<T>();

//返回List<T>类型
//可以这样调用,GetList<int>();此时返回List<int>类型
public static List<T> GetList<T>()

    return new List<T>();

//返回List<T>类型,并且T是可以实例化的类
//可以这样调用,GetList<DateTime>();此时返回的是List<DateTime>类型
//不可以这样调用,GetList<int>();因为int类不能被实例化
public static List<T> GetList<T>() where T : new()

    List<T> list = new List<T>();
    T obj = new T();
    list.Add(obj);
    return list;

参考技术B 这是用泛型,泛型方法可以这么声明:
public static List<T> FuncName<T>(List<T> arg);
使用的时候这样写:
List<int> x= FuncName<int>(new List<int>1,2,3);
参考技术C List<T>?T里面是个类型,你类型是什么?追问

系统提示的泛型,但是我用 缺少引用

追答

List表示是string

List表示是int

假如你的Model里面有一个实体是User
这里就写List同时引用Model

List表示是string的list

List表示是int的list

假如你的Mode里面有个实体叫User
List表示是User的list

同时引用Model

追问

我是用自定义Model,但是我有N个Model,我想这N个不同Model写一个通用方法?

怎样用C#把JSON数据转换为list或数组

//导入这个命名空间

using System.Web.Script.Serialization;

//这个命名空间需要引用几个,System.Web.XXX,具体我也记不了是哪几个,

//你看到System.Web.xxx的都引用。之后自己去掉没报错就是不需要的。

//导入命名空间完后,你可以这样声明对象

JavaScriptSerializer js = new JavaScriptSerializer();

//然后调用Json数据转对象的方法

//strJson 是Json字符串数据(这里需要JSON是数组数据的前提下)

List<string> list = js.Deserialize<List<string>>(strJson);

//这里主要说一下js.Deserialize<T>(string); //T(泛型)是需要转换成的对象(数组,List,OBJECT)

//string 是Json字符串数据

//这个方法返回的是T类型对象。(定义什么返回什么)

C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司 .NET windows网络框架的主角。

C#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言。它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。

C#是面向对象的编程语言。它使得程序员可以快速地编写各种基于MICROSOFT .NET平台的应用程序,MICROSOFT .NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。

C#使得C++程序员可以高效的开发程序,且因可调用由 C/C++ 编写的本机原生函数,因此绝不损失C/C++原有的强大的功能。因为这种继承关系,C#与C/C++具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。

参考技术A //导入这个命名空间
using System.Web.Script.Serialization;
//这个命名空间需要引用几个,System.Web.XXX,具体我也记不了是哪几个,
//你看到System.Web.xxx的都引用。之后自己去掉没报错就是不需要的。

//导入命名空间完后,你可以这样声明对象
JavaScriptSerializer js = new JavaScriptSerializer();

//然后调用Json数据转对象的方法
//strJson 是Json字符串数据(这里需要JSON是数组数据的前提下)
List<string> list = js.Deserialize<List<string>>(strJson);

//这里主要说一下js.Deserialize<T>(string); //T(泛型)是需要转换成的对象(数组,List,OBJECT)
//string 是Json字符串数据
//这个方法返回的是T类型对象。(定义什么返回什么)

//说完Json数据转对象,再说说对象转JSON字符串数据
//object 是需要转成Json字符串数据的对象
string strJson = js.Serialize(object);

请参考这个http://blog.csdn.net/yyixin/article/details/7243472
手机码字,忘采纳,不懂点追问。😀本回答被提问者采纳

以上是关于C#怎样定义返回值为List的方法的主要内容,如果未能解决你的问题,请参考以下文章

用C++封装了Halcon的算法,返回值为Hobject类型,在C#中调用dll怎么用Hobject类型的返回值。

利用linq to sql 建立查询方法返回值类型为List<T> 怎样去除集合中的重复数据?

C#关于在返回值为Task方法中使用Thread.Sleep引发的思考

c#调用Java发布的webservice返回值为False

c#中泛型集合怎样写强制类弄转换

C#怎么定义泛型集合类型的函数,返回一个集合