检查CSV字符串是否包含给定值C#

 手机用户2602931131 发布于 2023-01-06 19:24

我正在读取以逗号分隔的数字ID列表,该列表存储为字符串.我需要检查该列表中是否已存在id.例如:

"1,2,3"

如果我检查"2"我应该找到它,但如果我检查"22"我不应该.

什么是最直接,最简洁的方法?

我目前的代码如下:

HttpCookie cookie = Request.Cookies.Get("wishlist");
if (cookie != null)
{
     var JSONstring = cookie.Value; //Cookie stored as JSON
     Dictionary> jObj = JsonConvert.DeserializeObject>>(JSONstring); 

     // Retreive only the nodeId of each item and store it in a CSV list
     string umbracoCSV = String.Join(",", jObj.SelectMany(x => x.Value).Select(x => x.nodeId));

     // Convert the CSV into an IEnumerable list of ints
     IEnumerable umbracoNodeIdList = umbracoCSV.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries).Select(int.Parse); 

     foreach(int umbracoNodeId in umbracoNodeIdList){
         if(umbracoNodeId == 2){
              // Do code if it matches
         }else{
              // Do code if it doesn't match
         }
     } 
}

正如您所看到的,此代码包含一个非常不必要的循环,我真的希望能够直接解析CSV字符串的值而不是执行嵌套循环(因为如果不可能,此循环将嵌套在另一个循环中).

任何帮助将不胜感激.

1 个回答
  • 您可以使用以下Any方法简化代码:

    bool isExists = umbracoCSV.Split(',').Any(x => x == "2");
    
    if(isExists) { }
    

    2023-01-06 19:27 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有