小编Pau*_*aul的帖子

使用Linq在两个列表之间规范化的最佳方法是什么?

给定C#中的两个IEnumerable实例(称之为a和b),删除不在b中的所有值的最佳方法是什么,并添加不在b中的所有b值?

我知道我通常可以设置a = b,但这最终是为了通过实体框架CodeFirst在MVC应用程序中持久保存到DB,因此需要注意一些状态.事实上,我们正在谈论根据客户发布的内容更新记录.

似乎工作的最接近的涉及foreach循环,一个迭代'a'列表并填充'要删除的项'的集合,另一个迭代'b'列表以识别'要添加的项',然后分别在"要删除的项目"和"要添加的项目"集合中分别添加和删除项目(因为您在迭代时无法修改'a'集合.

但是,这感觉很笨重; 有没有更好的办法?

更新 为清楚起见,我会举个例子.假设我有一个我从DB中获取的实体代表一个博客帖子(因为那个例子永远不会累...)并且说Post有一组标签.从客户端,我得到一个标签列表,现在应该是标准的"规范"列表,但它们都不是实体,它只是一个内存中的集合.我想要做的是确保Post.Tags匹配客户端发布的标签,而不在数据库中创建重复的标签.

c# linq entity-framework-5

1
推荐指数
1
解决办法
167
查看次数

大括号导入和从ES6中的子目录导入有什么不同?

我对这些进口很好奇.

import Button from "react-bootstrap/lib/Button";
import { Button } from "react-bootstrap";
Run Code Online (Sandbox Code Playgroud)

它们都非常好地加载按钮,但是对于捆绑的最终大小是否重要?

javascript import ecmascript-6

1
推荐指数
1
解决办法
137
查看次数

Vue.Draggable不允许我在列表之间移动项目

尝试按照本教程进行操作,但在容器之间进行双向拖动。将问题减少到最少的代码集,我可以在列表中进行排序,但不能在列表之间进行排序。我从文档中得到的印象是,将两个可拖动对象设置为相同的组名将启用它,但是事实并非如此。

那么,我只需要允许将项目从一个列表移动到另一个列表,该怎么办?这是我尝试过的代码(同样,它非常适合在同一列表中重新排列)

<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)

drag-and-drop vue.js

1
推荐指数
2
解决办法
2012
查看次数

Actionbarsherlock背景图像

在覆盖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样式),但是我没有对动作栏的背景本身进行任何样式更改.

谢谢

android themes actionbarsherlock

0
推荐指数
2
解决办法
7576
查看次数

Google App脚本onEdit?

真的觉得我错过了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)

triggers google-sheets google-apps-script

0
推荐指数
1
解决办法
1万
查看次数