m0_58590380 2022-01-04 10:29 采纳率: 60%
浏览 50
已结题

linq 将int转成string怎么写

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
    public List<V_QYPerson> getUserListFW3(string CorpId, int rows, int page, Hashtable hashParams, string CurrentUserID, bool IsSuperAdmin, out int dataCount)
    {
        List<V_QYPerson> users = new List<V_QYPerson>();
            using (IRepository<V_QYPerson> repository = ServeiceCore.GetServiceFactory.GetInstance<IRepository<V_QYPerson>>(ServiceName.IRepository))
            {
                var enterpriseId = new Guid(CorpId);
                var wbuserid = new Guid(CurrentUserID);
                var query = repository.Set<V_QYPerson>().Where(c => 1 == 1).AsQueryable();
                if (!IsSuperAdmin)
                {
                    var final = PowerHelper.GetPowerids(repository.GetDbContext, enterpriseId, wbuserid);
                    query = query.Where(t => final.Contains(t.ID)).AsQueryable();
                }
                dataCount = query.Count();
                users = query.OrderByDescending(c => c.Name).Skip((page - 1) * rows).Take(rows).ToList();
                return users;
            }
        }
    }
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

将 V_QYPerson里面的Language 0显示成中文 1显示成英文

  • 写回答

3条回答 默认 最新

  • 码老头 2022-01-04 11:04
    关注

    可以在LINQ的Select查询时进行转换,或者使用静态扩展方法转换,示例如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    
    namespace ConsoleApp4
    {
        class Program
        {
            static void Main(string[] args)
            {
                var people = new List<Person>
                {
                    new(1, 1),
                    new(2, 0),
                    new(3, 1),
                    new(4, 1),
                    new(5, 0)
                };
                var users1 = people.Select(x => new PersonDto(x.Id, x.Language, $"{(x.Language == 0 ? "中文" : "英文")}"))
                    .ToList();
                Console.WriteLine("----------方式一----------");
                Display(users1);
    
                Console.WriteLine("----------方式二----------");
                var users2 = people.Select(x => new PersonDto(x.Id, x.Language)).ToList().ConvertLanguage();
    
                Display(users2);
            }
    
            static void Display(List<PersonDto> people)
            {
                foreach (var person in people)
                {
                    Console.WriteLine(
                        $"id:{person.Id}, language:{person.Language}, language as string:{person.LanguageAsString}");
                }
            }
        }
    
        record Person(int Id, int Language);
    
        record PersonDto(int Id, int Language, string LanguageAsString = null)
        {
            internal string LanguageAsString { get; set; } = LanguageAsString;
        }
    
        static class Extensions
        {
            public static List<PersonDto> ConvertLanguage(this List<PersonDto> people)
            {
                foreach (var person in people)
                {
                    person.LanguageAsString = person.Language == 0 ? "中文" : "英文";
                }
    
                return people;
            }
        }
    }
    

    输出结果:

    ----------方式一----------
    id:1, language:1, language as string:英文
    id:2, language:0, language as string:中文
    id:3, language:1, language as string:英文
    id:4, language:1, language as string:英文
    id:5, language:0, language as string:中文
    ----------方式二----------
    id:1, language:1, language as string:英文
    id:2, language:0, language as string:中文
    id:3, language:1, language as string:英文
    id:4, language:1, language as string:英文
    id:5, language:0, language as string:中文
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 1月12日
  • 已采纳回答 1月4日
  • 创建了问题 1月4日

悬赏问题

  • ¥15 plotBAPC画图出错
  • ¥30 关于#opencv#的问题:使用大疆无人机拍摄水稻田间图像,拼接成tif图片,用什么方法可以识别并框选出水稻作物行
  • ¥15 Python卡尔曼滤波融合
  • ¥20 iOS绕地区网络检测
  • ¥15 python验证码滑块图像识别
  • ¥15 根据背景及设计要求撰写设计报告
  • ¥20 能提供一下思路或者代码吗
  • ¥15 用twincat控制!
  • ¥15 请问一下这个运行结果是怎么来的
  • ¥15 单通道放大电路的工作原理