本文整理汇总了C#中RubyArray.Add方法的典型用法代码示例。如果您正苦于以下问题:C# RubyArray.Add方法的具体用法?C# RubyArray.Add怎么用?C# RubyArray.Add使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类RubyArray
的用法示例。
在下文中一共展示了RubyArray.Add方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Accept
public static RubyArray Accept(RubyContext/*!*/ context, RubySocket/*!*/ self)
{
RubyArray result = new RubyArray(2);
RubySocket s = new RubySocket(context, self.Socket.Accept());
result.Add(s);
SocketAddress addr = s.Socket.RemoteEndPoint.Serialize();
result.Add(MutableString.CreateAscii(addr.ToString()));
return result;
}
示例2: DefineFinalizer
public static object DefineFinalizer(RespondToStorage/*!*/ respondTo, BinaryOpStorage/*!*/ call, RubyModule/*!*/ self, object obj, object finalizer)
{
if (!Protocols.RespondTo(respondTo, finalizer, "call")) {
throw RubyExceptions.CreateArgumentError("finalizer should be callable (respond to :call)");
}
respondTo.Context.SetInstanceVariable(obj, FinalizerInvoker.InstanceVariableName, new FinalizerInvoker(call.GetCallSite("call"), finalizer));
RubyArray result = new RubyArray(2);
result.Add(0);
result.Add(finalizer);
return result;
}
示例3: GetAvailableEncodings
public static RubyArray/*!*/ GetAvailableEncodings(RubyClass/*!*/ self) {
// TODO: loads all encodings, we should be lazy with encoding creation
var infos = Encoding.GetEncodings();
var result = new RubyArray(1 + infos.Length);
// Ruby specific:
result.Add(RubyEncoding.Binary);
foreach (var info in infos) {
result.Add(RubyEncoding.GetRubyEncoding(info.GetEncoding()));
}
return result;
}
示例4: GetMembers
internal RubyArray/*!*/ GetMembers(RubyContext/*!*/ context) {
RubyArray list = new RubyArray(_names.Length);
foreach (string id in _names) {
list.Add(context.StringifyIdentifier(id));
}
return list;
}
示例5: GetMembers
internal RubyArray/*!*/ GetMembers() {
RubyArray list = new RubyArray(Members.Length);
foreach (string id in Members) {
list.Add(MutableString.Create(id));
}
return list;
}
示例6: OpenPipe
public static RubyArray/*!*/ OpenPipe(
RubyContext/*!*/ context,
object self,
[DefaultProtocol, NotNull]MutableString/*!*/ command) {
Process process = RubyIOOps.OpenPipe(context, command, true, true, true);
RubyArray result = new RubyArray();
result.Add(new RubyIO(context, null, process.StandardInput, IOMode.WriteOnly));
result.Add(new RubyIO(context, process.StandardOutput, null, IOMode.ReadOnly));
result.Add(new RubyIO(context, process.StandardError, null, IOMode.ReadOnly));
if (context.RubyOptions.Compatibility >= RubyCompatibility.Ruby19) {
result.Add(ThreadOps.RubyThreadInfo.FromThread(System.Threading.Thread.CurrentThread));
}
return result;
}
示例7: GetMembers
internal RubyArray/*!*/ GetMembers() {
RubyArray list = new RubyArray(_names.Length);
foreach (string id in _names) {
// TODO: we need to add encoding to symbols and preserve it here:
list.Add(MutableString.Create(id, RubyEncoding.UTF8));
}
return list;
}
示例8: GetAddressInfo
public static RubyArray GetAddressInfo(
ConversionStorage<MutableString>/*!*/ stringCast, ConversionStorage<int>/*!*/ fixnumCast,
RubyClass/*!*/ self, object hostNameOrAddress, object port,
[DefaultParameterValue(null)]object family,
[DefaultParameterValue(0)]object socktype,
[DefaultParameterValue(0)]object protocol,
[DefaultParameterValue(null)]object flags) {
IPHostEntry entry = (hostNameOrAddress != null) ?
GetHostEntry(ConvertToHostString(stringCast, hostNameOrAddress)) : MakeEntry(IPAddress.Any);
int iPort = ConvertToPortNum(stringCast, fixnumCast, port);
// Sadly the family, socktype, protocol and flags get passed through at best and ignored at worst,
// since System.Net does not provide for them
AddressFamily addrFamily = ConvertToAddressFamily(stringCast, fixnumCast, family);
int socketType = Protocols.CastToFixnum(fixnumCast, socktype);
int protocolType = Protocols.CastToFixnum(fixnumCast, protocol);
RubyArray results = new RubyArray(entry.AddressList.Length);
for (int i = 0; i < entry.AddressList.Length; ++i) {
IPAddress address = entry.AddressList[i];
RubyArray result = new RubyArray(9);
result.Add(ToAddressFamilyString(address.AddressFamily));
result.Add(iPort);
if (DoNotReverseLookup(self.Context).Value) {
result.Add(MutableString.CreateAscii(address.ToString()));
} else {
IPHostEntry alias = GetHostEntry(address);
// TODO (encoding):
result.Add(MutableString.Create(alias.HostName, RubyEncoding.UTF8));
}
result.Add(MutableString.CreateAscii(address.ToString()));
result.Add((int)address.AddressFamily);
result.Add(socketType);
// TODO: protocol type:
result.Add(protocolType);
results.Add(result);
}
return results;
}
示例9: List
public static RubyArray/*!*/ List([NotNull]ThreadGroup/*!*/ self) {
ThreadOps.RubyThreadInfo[] threads = ThreadOps.RubyThreadInfo.Threads;
RubyArray result = new RubyArray(threads.Length);
foreach (ThreadOps.RubyThreadInfo threadInfo in threads) {
Thread thread = threadInfo.Thread;
if (thread != null && threadInfo.Group == self) {
result.Add(thread);
}
}
return result;
}
示例10: GetGroup
public static RubyArray GetGroup(RubyContext/*!*/ context, MatchData/*!*/ self, [DefaultProtocol]int start, [DefaultProtocol]int length) {
if (!IListOps.NormalizeRange(self.Groups.Count, ref start, ref length)) {
return null;
}
RubyArray result = new RubyArray();
for (int i = 0; i < length; i++) {
result.Add(self.GetGroupValue(context, start + i));
}
return result;
}
示例11: TOA
public static RubyArray/*!*/ TOA(RubyContext/*!*/ context, object self) {
RubyArray result = new RubyArray();
RubyArray lines;
while (context.InputProvider.HasMoreFiles()) {
lines = RubyIOOps.ReadLines(context, context.InputProvider.GetOrResetCurrentStream());
//TODO: result.append(lines)???
foreach (var line in lines) {
result.Add(line);
}
}
return result;
}
示例12: Map
public static RubyArray Map(CallSiteStorage<EachSite>/*!*/ each, BlockParam collector, object self) {
RubyArray result = new RubyArray();
Each(each, self, Proc.Create(each.Context, delegate(BlockParam/*!*/ selfBlock, object _, object item) {
if (collector != null) {
if (collector.Yield(item, out item)) {
return item;
}
}
result.Add(item);
return null;
}));
return result;
}
示例13: Ancestors
public static RubyArray Ancestors(RubyModule/*!*/ self)
{
RubyArray ancestors = new RubyArray();
using (self.Context.ClassHierarchyLocker()) {
self.ForEachAncestor(true, delegate(RubyModule/*!*/ module) {
if (!module.IsSingletonClass) {
ancestors.Add(module);
}
return false;
});
}
return ancestors;
}
示例14: IListOps_EnumerateRecursively1
public void IListOps_EnumerateRecursively1()
{
var a = new RubyArray();
var b = new RubyArray();
b.Add(new RubyArray { new RubyArray { b } });
a.Add(b);
var result = IListOps.EnumerateRecursively(new Runtime.ConversionStorage<System.Collections.IList>(Context), a, -1, list => {
Assert(list == b);
return 123;
}).ToArray();
Assert(result.Length == 1 && (int)result[0] == 123);
}
示例15: RubyArray_Add
public void RubyArray_Add()
{
RubyArray a;
a = new RubyArray();
for (int i = 0; i < Utils.MinListSize; i++) {
a.Add(i);
Assert((int)a[i] == i && a.Count == i + 1 && a.Capacity == Utils.MinListSize);
}
Assert(((IList)a).Add(Utils.MinListSize) == Utils.MinListSize);
Assert(a.Count == Utils.MinListSize + 1);
for (int i = 0; i < a.Count; i++) {
Assert((int)a[i] == i);
}
a = new RubyArray(new[] { 1,2,3 });
a.AddCapacity(0);
Assert(a.Count == 3);
a.AddCapacity(100);
Assert(a.Count == 3 && a.Capacity >= 103);
a = new RubyArray(new[] { 1, 2, 3 });
a.AddMultiple(0, 4);
AssertValueEquals(a, 1, 2, 3);
a.AddMultiple(5, 4);
AssertValueEquals(a, 1, 2, 3, 4, 4, 4, 4, 4);
a = new RubyArray(new[] { 1, 2, 3 });
a.AddRange(new object[0]);
AssertValueEquals(a, 1, 2, 3);
a.AddRange(new[] { 4 });
AssertValueEquals(a, 1, 2, 3, 4);
a.AddRange(new[] { 5, 6, 7, 8, 9, 10 });
AssertValueEquals(a, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
a.AddRange(new[] { 11 });
AssertValueEquals(a, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11);
a = new RubyArray();
a.AddRange((IEnumerable)new RubyArray(new[] { 1, 2, 3 }));
a.AddRange((IList)new RubyArray(new[] { 1, 2, 3 }), 1, 2);
AssertValueEquals(a, 1, 2, 3, 2, 3);
a.Freeze();
AssertExceptionThrown<RuntimeError>(() => a.Add(1));
AssertExceptionThrown<RuntimeError>(() => a.AddCapacity(10));
AssertExceptionThrown<RuntimeError>(() => a.AddMultiple(10, 10));
AssertExceptionThrown<RuntimeError>(() => a.AddRange(new object[0]));
AssertExceptionThrown<RuntimeError>(() => a.AddRange(Enumerable(0)));
}