给定C#中的两个IEnumerable实例(称之为a和b),删除不在b中的所有值的最佳方法是什么,并添加不在b中的所有b值?
我知道我通常可以设置a = b,但这最终是为了通过实体框架CodeFirst在MVC应用程序中持久保存到DB,因此需要注意一些状态.事实上,我们正在谈论根据客户发布的内容更新记录.
似乎工作的最接近的涉及foreach循环,一个迭代'a'列表并填充'要删除的项'的集合,另一个迭代'b'列表以识别'要添加的项',然后分别在"要删除的项目"和"要添加的项目"集合中分别添加和删除项目(因为您在迭代时无法修改'a'集合.
但是,这感觉很笨重; 有没有更好的办法?
更新 为清楚起见,我会举个例子.假设我有一个我从DB中获取的实体代表一个博客帖子(因为那个例子永远不会累...)并且说Post有一组标签.从客户端,我得到一个标签列表,现在应该是标准的"规范"列表,但它们都不是实体,它只是一个内存中的集合.我想要做的是确保Post.Tags匹配客户端发布的标签,而不在数据库中创建重复的标签.
我对这些进口很好奇.
import Button from "react-bootstrap/lib/Button";
import { Button } from "react-bootstrap";
Run Code Online (Sandbox Code Playgroud)
它们都非常好地加载按钮,但是对于捆绑的最终大小是否重要?
尝试按照本教程进行操作,但在容器之间进行双向拖动。将问题减少到最少的代码集,我可以在列表中进行排序,但不能在列表之间进行排序。我从文档中得到的印象是,将两个可拖动对象设置为相同的组名将启用它,但是事实并非如此。
那么,我只需要允许将项目从一个列表移动到另一个列表,该怎么办?这是我尝试过的代码(同样,它非常适合在同一列表中重新排列)
<template>
<v-container fill-height fluid grid-list-md mt-0 class='about'>
<v-layout column fill-height>
<h1>This is an about page</h1>
<v-layout row fill-height>
<v-flex xs4>
<draggable class='dragArea' v-model='peopleList'>
<div v-for='person in peopleList' :key='person.id' :options='{group: "people"}'>{{ person.name }}</div>
</draggable>
</v-flex>
<v-flex xs4>
<draggable class='dragArea' v-model='employeeList'>
<div v-for='person in employeeList' :key='person.id' :options='{group: "people"}'>{{ person.name }}</div>
</draggable>
</v-flex>
</v-layout>
</v-layout>
</v-container>
</template>
<script>
import draggable from 'vuedraggable'
export default {
name: 'About',
data () {
return {
employees: [{ id: 6, name: 'Pete' }, …
Run Code Online (Sandbox Code Playgroud) 在覆盖ActionBarSherlock样式时遇到一些麻烦,希望有人可以提供帮助.我创建了一个像这样的drawable:
(在res/drawable/actionbar_background.xml中)
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/bg"
android:tileMode="repeat" />
Run Code Online (Sandbox Code Playgroud)
然后在我的应用程序的样式文件中(在res/values/style.xml中)
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="ActionBar" parent="@android:style/Widget.Holo.ActionBar">
<item name="android:background">@drawable/actionbar_background</item>
</style>
<style name="my_theme" parent="@style/Theme.Sherlock.Light">
<item name="android:actionBarStyle">@style/ActionBar</item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)
结果是拾取了Theme.Sherlock.Light样式(如果我交换了Theme.Sherlock.Light样式),但是我没有对动作栏的背景本身进行任何样式更改.
谢谢
真的觉得我错过了Spreadsheet对象脚本.
我正在尝试自动发送电子邮件给onEdit.我在测试中显式运行脚本时成功通过电子邮件发送,但onEdit事件似乎永远不会被触发(甚至看不到日志消息).脚本看起来非常简单.
function onEdit(e) {
var sheet = e.source;
var viewers = sheet.getViewers();
var ct = viewers.length;
var recipients = [];
for(var i=0;i<ct;i++){
recipients.push(viewers[i].getEmail());
};
var subject = 'Update to '+sheet.getName();
var body = sheet.getName() + ' has been updated. Visit ' + sheet.getUrl() + ' to view the changes ' + e.range;
Logger.log('Running onedit');
MailApp.sendEmail(recipients, subject, body);
};
Run Code Online (Sandbox Code Playgroud) android ×1
c# ×1
ecmascript-6 ×1
import ×1
javascript ×1
linq ×1
themes ×1
triggers ×1
vue.js ×1