7R903 发表于 2021-10-18 14:36

C#使用List返回多个参数,如何更便捷?

本帖最后由 cn005897 于 2021-10-18 14:42 编辑

//自定义参数
public class Parm
{
    public int Count { get; set; }
    public string Msg { get; set; }
}





public static List<Parm> Test<T>()
{
   List<Parm> list = new List<Parm>();
   list.Add(new Parm { Count = 100, Msg = "" });
   return list;
}


我想在设定返回值为List<Parm>类型,我现在是这样调用的
List<Parm> li = Test<Parm>();

不知道有没有更方便的写法、

错的是世界 发表于 2021-10-18 14:46

你这样写的意义是啥?

netcsk 发表于 2021-10-18 14:46

out 和ref 干啥用的还有你为什么不能直接返回Parm 对象

netcsk 发表于 2021-10-18 14:48

已经有啦固定类型 为什么还要用泛型呢public static List<Parm> Test(){//todo;
}

这样不可以吗

wanghun315 发表于 2021-10-18 14:57

1.不定义Parm:
            List<Dictionary<int, String >> li = new List<Dictionary<int, String>>() {
                {new Dictionary<LONG, string>(){ { 100, "" } } }
            };
2.定义Parm:
         public class Parm
         {
                public int Count { get; set; }
                public string Msg { get; set; }
                public Parm(int count, string msg){
                      Count = count;
                     Msg = msg;
               }
                public static Parm CreateParm(int count, string msg){
                  Parm p = new Parm(count, msg);
                  return p;
                  
                }
            }
            List<Parm> li = new List<Parm>() {
                {new Parm(100, "")}
            };

coolcalf 发表于 2021-10-18 15:03

方法有很多:
public string, string GetFirstNameAndLastName(int id)
{
    var person = from p in People
               where p.Id = id
               select p;
    return(p.FirstName, p.LastName);
}

public void Main(string[] args)
{
    string firstName, lastName;
    (firstName, lastName) = GetFirstNameAndLastName(1);

    Console.WriteLine(firstName +"," + lastName);
}


您也可以使用C#4.0中的Tuple以轻量级方式实现此目的:

public Tuple<string, string> GetFirstNameAndLastName(int id)
{
   var person = from p in People
             where p.Id = id
             select p;
   return new Tuple<string, string>(p.FirstName, p.LastName);

   // OR
   // return Tuple.Create(p.FirstName, p.LastName);
}

不知道改成啥 发表于 2021-10-18 15:06

楼主是不是搞java的,C#都是用ref和out{:1_907:}

weikun444 发表于 2021-10-18 15:11

可以返回以特殊字符分隔的字符串,到时用Split函数即可!

7R903 发表于 2021-10-18 15:31

tanzhiwei 发表于 2021-10-18 15:06
楼主是不是搞java的,C#都是用ref和out

{:1_924:}以前碰过,现在很少用ref,我去了解下,谢谢

7R903 发表于 2021-10-18 15:33

谢谢各位大佬指点,基础还是太差了
页: [1] 2
查看完整版本: C#使用List返回多个参数,如何更便捷?