由于我在这里问的另一个问题,我想为我的对象使用HashSet
我将创建包含字符串的对象和对其所有者的引用.
public class Synonym
{
private string name;
private Stock owner;
public Stock(string NameSynonym, Stock stock)
{
name=NameSynonym;
owner=stock
}
// [+ 'get' for 'name' and 'owner']
}
Run Code Online (Sandbox Code Playgroud)
我知道我需要一个比较器,但以前从未使用它.我应该创建一个单独的类吗?喜欢:
public class SynonymComparer : IComparer<Synonym>
{
public int Compare(Synonym One, Synonym Two)
{ // Should I test if 'One == null' or 'Two == null' ????
return String.Compare(One.Name, Two.Name, true); // Caseinsesitive
}
Run Code Online (Sandbox Code Playgroud)
}
我更喜欢有一个函数(或嵌套类[可能是单例?],如果需要)作为类同义词的PART而不是另一个(独立)类.这可能吗?
关于用法:因为我之前从未使用过这种东西,我想我必须在类同义词中写一个Find(字符串NameSynonym)函数,但是我应该怎么做呢?
public class SynonymManager
{
private HashSet<SynonymComparer<Synonym>> ListOfSynonyms;
public SynonymManager()
{
ListOfSymnonyms = new HashSet<SynonymComparer<Synonym>>(); …Run Code Online (Sandbox Code Playgroud) 我刚开始使用GAS的电子表格编程,但无法找到我的琐碎问题的答案.
我想获得电子表格中列中的最高数字.
打开电子表格并获取范围不是问题,但我不知道如何使用MAX()等内置电子表格函数
var ss = openSpreadsheetByName(MyName);
var sheet = ss.getSheets()[0];
var lastRow = sheet.getLastRow();
var range = sheet.range(1, 1, lastRow, 1);
Run Code Online (Sandbox Code Playgroud)
现在我想使用 var maxId = range.max();或者var maxId = max(range);
一般我想使用内置的电子表格功能.但不知道如何.
在工作表上,我有 3 个 ActiveX 对象,分别是 TextBox1、TextBox2、ListBox1
撇开其他代码我有一个类 clsEvents 包含
Private WithEvents txbControl As MSForms.TextBox
Private WithEvents lisControl As MSForms.ListBox
Private txbEvents As TextBoxEvents
Private lisEvents As ListBoxEvents
Private Sub txbControl_Change()
txbEvents.ChangeEvent txbControl
End Sub
Private Sub lisControl_Change()
lisEvents.ChangeEvent lisControl
End Sub
Run Code Online (Sandbox Code Playgroud)
和类 TextBoxEvents 和 ListBoxEvents 包含
Public Event Changed(txtBox As MSForms.TextBox)
Public Sub ChangeEvent(txtBox As MSForms.TextBox)
RaiseEvent Changed(txtBox)
End Sub
Run Code Online (Sandbox Code Playgroud)
Public Event Changed(ByRef myListBox As MSForms.ListBox)
Public Sub ChangeEvent(lisBox As MSForms.ListBox)
RaiseEvent Changed(lisBox)
End Sub
Run Code Online (Sandbox Code Playgroud)
工作表模块包含
Public WithEvents tbxEvents As …Run Code Online (Sandbox Code Playgroud) 在一个应用程序中,我将有大约3000到30000个字符串.在创建之后(从无序的文件中读取)将不会有很多字符串经常被添加(但有时会有!).删除字符串也不会经常发生.将字符串与存储的字符串进行比较将经常发生.
我最好使用什么样的结构,哈希表,树(Red-Black,Splay,......)或者只是在有序列表中(可能是StringArray?)?
(补充说明:一个好的C#实现的链接也将受到赞赏)
CacheService的最大大小是多少?
我知道可以在缓存中存储的最长时间是21600秒,但我找不到publicCache和privateCache的实际大小有多大,以及我们如何知道缓存中有多少空间(stll)可用.
由于缓存无法刷新(请参阅如何刷新缓存)并且似乎没有办法从缓存中检索所有密钥(为了从缓存中删除所有对象),我认为我是那种信息要求很重要.
最好的(当然)提供有关缓存,密钥和允许刷新的信息.
我在使我的应用程序可运行但用户无法查看时遇到问题,我正在寻找描述(/配方)来告诉我该怎么做才能实现我想要的目标。
我使用 Google Apps 脚本编写了一个 UiApp 并将其放入库中(此处称为 XXX)。
此 UiApp 使用高级 Google 服务驱动 api、驱动 sdk 和日历。
日历本身已被所有用户共享。
库 XXX 内的 UiApp 只能由已被授予 Google 驱动器查看访问权限的用户使用。
我还编写了一个调用库 XXX 的小型启动脚本(称为 YYY)。
在 XXX 内部,我调用包含 UiApp 代码的库 ZZZ。
YYY 将以用户身份运行,但 ZZZ 应该以“我”身份运行。
function doGet()
{ // Perform necessary actions before loading the UI from library ZZZ
var info = null;
var retVal = XXX.init(info); / Executing the UiApp inside library XXX
Logger.log('XXX.init(info)= ' + retVal);
return retVal;
}
Run Code Online (Sandbox Code Playgroud)
图书馆 XXX 里面我有
function init(info)
{ …Run Code Online (Sandbox Code Playgroud)