简体   繁体   English

将拆分字符串作为列表交织C#

[英]Interleaving split strings as a list c#

Currently I need to interleave to strings into a singe list, yet am at a loss re how to do it. 目前,我需要将字符串插入单个列表中,但是如何操作却无所适从。

The code I'm using currently is this (I haven't gotten very far): 我当前正在使用的代码是这样的(我还没有走很远):

 public PartialViewResult Interleave(string details, string ids)
    {
            List<string> detailList = details.Split(',').ToList();
            List<string> idlist = ids.Split(',').ToList();
            return PartialView("_ConceptDetail1", detailList)     
    }

Is there a standard way to interleave the lists? 有没有交错列表的标准方法?

Maybe you want to zip both together, you can use Enumerable.Zip then: 也许您想将两者都压缩在一起,可以使用Enumerable.Zip然后:

String[] details = details.Split(',');
String[] ids = ids.Split(',');
List<String> idDetails = ids.Zip(details, (id, detail) => id + " " + detail)
                        .ToList();

Based on Zip 's implementation, I supposed I would make my own extension method : 基于Zip的实现,我想我会做自己的扩展方法:

    static IEnumerable<T> Interleave<T>(this IEnumerable<T> first, IEnumerable<T> second)
    {
        using (IEnumerator<T> enumerator = first.GetEnumerator())
        {
            using (IEnumerator<T> enumerator2 = second.GetEnumerator())
            {
                while (enumerator.MoveNext() && enumerator2.MoveNext())
                {
                    yield return enumerator.Current;
                    yield return enumerator2.Current;
                }
            }
        }
        yield break;
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM