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"
直接用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
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数组,两个麻烦都给举个例子)
如何将两个数组作为 POST 请求参数从 AJAX 发送到 MVC 控制器(ASP .NET Core 3.1 剃须刀)?