asp.net两个数组的并集

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了asp.net两个数组的并集相关的知识,希望对你有一定的参考价值。


string[] str1="a","b","d"
string[] str2="a","c","d","e"

如果求得string[] str3="a","b","c","d","e"

参考技术A

直接用LINQ的扩展方法很简单,

using System; 
using System.Linq;
 
static void Main()

   string[] str1="a","b","d";
   string[] str2="a","c","d","e";
   // or str3 = str1.Union(str2).ToArray(); 
   string[] str3 = str1.Concat(str2).Distinct().ToArray();
   foreach(string c in str3)
      Console.WriteLine(c);

输出:

a
b
d
c
e

本回答被提问者采纳
参考技术B usin System.Linq;
string[] str1 =  "a", "b", "d" ;
string[] str2 =  "a", "c", "d", "e" ;

var query = str1.Union(str2).ToArray();

foreach (string str in query)

Console.WriteLine(str);

Django中数组的并集和交集

【中文标题】Django中数组的并集和交集【英文标题】:Union and Intersection of Arrays in Django 【发布时间】:2013-10-23 02:09:42 【问题描述】:
if(filter[0][0]):
    films_material_PP = GlassFilm.objects.filter(f_material = 'PP')
else:
    films_material_PP = GlassFilm.objects.none()

if(filter[0][1]):
    films_material_PVC = GlassFilm.objects.filter(f_material = 'PVC')
else:
    films_material_PVC = GlassFilm.objects.none()


if(filter[1][0]):
    films_color_Grey = GlassFilm.objects.filter(f_color = 'Grey')
else:
    films_color_Grey = GlassFilm.objects.none()

if(filer[1][1]):
    films_color_Yellow = GlassFilm.objects.filter(f_color = 'Yellow')
else:
    films_color_Yellow = GlassFilm.objects.none()

films_material.union(films_material_PP,films_material_PVC)
films_color.union(films_color_Grey,films_color_Yellow)
films_total.intersect(films_material,films_color)

我们如何在 Django 中实现最后三个语句?我看过其他类似的问题,请注意我不是在寻找

GlassFilm.objects.filter((Q(f_material = 'PP') | Q(f_material = 'PVC')) & (Q(f_color = 'Grey')|Q(f_color = 'Yellow')))

*编辑:*这是我想要实现的目标。我为用户提供两种类型的 HTML 复选框 (1) 材料 (2) 颜色

在 Material 中有两个选项“PP”和“PVC”,用户可以勾选。同样,用户可能会勾选颜色中的两个复选框(“灰色”和“黄色”)。 如果用户勾选“PP”和“灰色”,我想显示具有这两个属性的对象。如果用户只勾选“PP”,我只想显示材质为“PP”的那些对象。如果用户同时勾选“PP”和“PVC”,那么我想显示那些材质为“PP”或“PVC”的对象。

正是出于这个目的,我想要一个与上述代码等效的代码。现在 union()intersect() 函数只是伪代码,我真的想要正确的 django/python 代码。

【问题讨论】:

您为什么不寻找特定的解决方案? 联合部分***.com/questions/4411049/… @goncalopp 因为if(filter) 语句。我只想根据某些条件获得几个GlassFilm 对象。 我不确定您所说的 if(filter) 是什么意思。如果您指的是filter python 函数,那么您提到的代码不会那样工作。 “过滤”由数据库引擎完成,不是由 python 完成。这应该比从数据库中获取所有对象然后在python中进行设置操作更有效,这似乎是您正在寻找的解决方案 不!我指的是类型的陈述:if(filter[1][0]): 【参考方案1】:

您可以使用&| 运算符执行set 对象的交集和并集:

intersection = queryset1 & queryset2

union = queryset1 | queryset2

【讨论】:

以上是关于asp.net两个数组的并集的主要内容,如果未能解决你的问题,请参考以下文章

asp.net页面如何接收AJAX传递过来的数组(普通数组和jason数组,两个麻烦都给举个例子)

C#中求数组并集的算法

ES6数组:两个数组或数组对象取并集、交集、差集

用linq做数组取并集

如何将两个数组作为 POST 请求参数从 AJAX 发送到 MVC 控制器(ASP .NET Core 3.1 剃须刀)?

c_cpp 交集,两个排序数组的并集