C# 如何使用Linq组合字符串和列表?
新手linq用户,但prim_clus_list和ref_clus_list是列表,ref_clus和prim_clus是字符串。我正试着做下面的事情,但它不起作用C# 如何使用Linq组合字符串和列表?,c#,linq,C#,Linq,新手linq用户,但prim_clus_list和ref_clus_list是列表,ref_clus和prim_clus是字符串。我正试着做下面的事情,但它不起作用 string[] clus_list = prim_clus_list.Union(ref_clus_list).Union(ref_clus.ToList()).Union(prim_clus.ToList()).ToArray<string>(); string[]clus\u list=prim\u clus\u
string[] clus_list = prim_clus_list.Union(ref_clus_list).Union(ref_clus.ToList()).Union(prim_clus.ToList()).ToArray<string>();
string[]clus\u list=prim\u clus\u list.Union(ref\u clus\u list).Union(ref\u clus.ToList()).Union(prim\u clus.ToList()).ToArray();
我如何在一行中完成这项工作?我希望它们都在一个列表中,没有重复项
CS1928:'System.Collections.Generic.IEnumerable'不包含'Union'的定义,并且最佳扩展方法重载'System.Linq.Queryable.Union(System.Linq.IQueryable,System.Collections.Generic.IEnumerable)'具有一些无效参数
此外,仅此一项就可以很好地发挥作用:
string[] clus_list = prim_clus_list.Union(ref_clus_list).ToArray<string>();
string[]clus\u list=prim\u clus\u list.Union(ref\u clus\u list.ToArray();
这就是您需要的:
var prim_clus_list = new List<string>() { "A", "B" };
var ref_clus_list = new List<string>() { "C", "D" };
var ref_clus = "E";
var prim_clus = "F";
string[] clus_list =
prim_clus_list
.Union(ref_clus_list)
.Union(new [] { ref_clus })
.Union(new [] { prim_clus })
.ToArray<string>();
var prim_clus_list=new list(){“A”,“B”};
var ref_clus_list=新列表(){“C”,“D”};
var ref_clus=“E”;
var prim_clus=“F”;
字符串[]clus\u列表=
基本俱乐部名单
.Union(参考俱乐部列表)
.Union(新[]{ref_clus})
.Union(新[]{prim_clus})
.ToArray();
这就产生了:
A
B
C
D
E
F
A.
B
C
D
E
F
基本上,ref\u clus.ToList()
返回一个列表
,但是new[]{ref\u clus}
返回一个IEnumerable
,可以与.Union
一起使用这就是您需要的:
var prim_clus_list = new List<string>() { "A", "B" };
var ref_clus_list = new List<string>() { "C", "D" };
var ref_clus = "E";
var prim_clus = "F";
string[] clus_list =
prim_clus_list
.Union(ref_clus_list)
.Union(new [] { ref_clus })
.Union(new [] { prim_clus })
.ToArray<string>();
var prim_clus_list=new list(){“A”,“B”};
var ref_clus_list=新列表(){“C”,“D”};
var ref_clus=“E”;
var prim_clus=“F”;
字符串[]clus\u列表=
基本俱乐部名单
.Union(参考俱乐部列表)
.Union(新[]{ref_clus})
.Union(新[]{prim_clus})
.ToArray();
这就产生了:
A
B
C
D
E
F
A.
B
C
D
E
F
基本上,
ref\u clus.ToList()
返回一个列表
,但是new[]{ref\u clus}
返回一个IEnumerable
,可以与一起使用。Union
使用。Append
方法将单个项追加到IEnumerable
var result = prim_clus_list.Append(ref_clus)
.Append(prim_clus)
.Union(ref_clus_list)
.ToArray();
将Union
放在链的末尾以消除重复项
使用
.Append
方法将单个项追加到IEnumerable
var result = prim_clus_list.Append(ref_clus)
.Append(prim_clus)
.Union(ref_clus_list)
.ToArray();
将Union
放在链的末尾以消除重复项
如果
ref\u clus
是string
,则ref\u clus.ToList().ToList()
不应编译,除非您有stringYep的扩展方法,抱歉,忽略了错误。更新。如果您是新手,那么您应该先阅读linq、union和string的文档使用linqaggregate@ChetanRanpariya-如果我们仔细阅读文档,就不需要堆栈溢出:)如果ref\u clus
是string
,那么ref\u clus.ToList().ToList()
就不应该编译,除非您有stringYep的扩展方法,否则很抱歉,忽略了错误。更新。如果您是新手,那么您应该先阅读linq、union和string的文档使用linqaggregate@ChetanRanpariya-如果我们仔细阅读文档,就不需要StackOverflow了:)我得到了一个CS0023运算符。“”不能应用于类型为“void”的操作数。
当我尝试此代码时出错?我的错误。我有一个优先的流氓扩展方法。我得到一个CS0023运算符。“”在我尝试此代码时无法应用于“void”类型的操作数。
错误?我的错误。我有一个优先的流氓扩展方法。